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 = 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
这种问题很难发现,一般找到原因后,直接屏蔽修改文件的代码。