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
這種問題很難發現,一般找到原因後,直接屏蔽修改文件的代碼。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!