python打包文件一闪而过(29.Python程序打包成可执行文件)
Python作为一门编程语言,因为入门简单上手快,加上人工智能深度学习各种框架对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 = None
a = 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
这种问题很难发现,一般找到原因后,直接屏蔽修改文件的代码。
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com