首页
/
每日頭條
/
科技
/
python打包文件一閃而過
python打包文件一閃而過
更新时间:2024-10-05 04:22:21

python打包文件一閃而過?Python作為一門編程語言,因為入門簡單上手快,加上人工智能深度學習各種框架對Python語言的支持,所以受到很多人的歡迎,下面我們就來聊聊關于python打包文件一閃而過?接下來我們就一起去了解一下吧!

python打包文件一閃而過(29.Python程序打包成可執行文件)1

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

三、第三庫本身的問題

這種問題很難發現,一般找到原因後,直接屏蔽修改文件的代碼。

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
Copyright 2023-2024 - www.tftnews.com All Rights Reserved