龙空技术网

29.Python程序打包成可执行文件——常见疑难问题解决办法

UNET 78

前言:

此时咱们对“python代码如何变成可执行文件”大致比较关切,同学们都想要知道一些“python代码如何变成可执行文件”的相关内容。那么小编同时在网络上汇集了一些对于“python代码如何变成可执行文件””的相关资讯,希望各位老铁们能喜欢,看官们快快来了解一下吧!

Python作为一门编程语言,因为入门简单上手快,加上人工智能深度学习各种框架对Python语言的支持,所以受到很多人的欢迎。

还有一个重要的原因,就是Python有大量第三方库支持,也就是大家在做程序的时候,不再重复造轮子,对于大部分人来说是非常方便快捷。

但是Python相比其他语言也有一些缺点,因为它是解释型语言,所以在运行的速度上相对编译型的语言运行速度会慢一些。对于不追求速度,只需要完成功能的人来说。选择Python是一个不错的选择。

有时我们用Python写好了一个程序,运行时好好的,但要把Python的程序打包成可执行文件,在其他环境上运行,就有些麻烦。因为我们要把Python运行的各种依赖库打包在一起,才能独立运行。而且每一次打包的程序遇到的问题都是各种各样的,出错误的信息让人看得一头的雾水。

下面说一下Python程序打包成可执行文件遇到了一些问题,这里打包用的是pyinstaller第三方库。

pyinstaller的安装和基本用法这里就不再讲,讲一下打包后出错及解决方法,

测试环境:python==3.7.4

一、缺少打包文件。有时候我们用打包的时候。有些文件不能自动打包进去的,但程序运行又是必须依赖的。

这时我们就必须手动添加需要的文件到myapp.spec文件中的datas=[ ]

例子:这两个库文件需要打包放在一起

D:\\MyPython\\myapp\\libs\libblas.dll'

D:\\MyPython\\myapp\\libs\warpctc.dll

修改myapp.spec文件中:debug和console项,方便查看出错信息

debug=True

console=True

# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['myapp.py'],             pathex=['D:\\MyPython\\myapp'],             binaries=[],             datas=[	('D:\\MyPython\\myapp\\libs\libblas.dll','.'),	('D:\\MyPython\\myapp\\libs\warpctc.dll','.')	],             hiddenimports=[],             hookspath=[],             hooksconfig={},             runtime_hooks=[],             excludes=[],             win_no_prefer_redirects=False,             win_private_assemblies=False,             cipher=block_cipher,             noarchive=False)pyz = PYZ(a.pure, a.zipped_data,             cipher=block_cipher)exe = EXE(pyz,          a.scripts,           [],          exclude_binaries=True,          name='myapp',          debug=True,          bootloader_ignore_signals=False,          strip=False,          upx=True,          console=True,          disable_windowed_traceback=False,          target_arch=None,          codesign_identity=None,          entitlements_file=None , icon='logo.ico')coll = COLLECT(exe,               a.binaries,               a.zipfiles,               a.datas,                strip=False,               upx=True,               upx_exclude=[],               name='myapp')

二、版本引起的问题,降低到合适版本

1、pandas打包提示出错,安装低版本

pip install pandas==1.0.3

2、pyinstaller版本

pip install pyinstaller==4.4

3、setuptools版本

pip install setuptools==53.0.0

三、第三库本身的问题

这种问题很难发现,一般找到原因后,直接屏蔽修改文件的代码。

标签: #python代码如何变成可执行文件