pyinstaller打包py遇到的問題

2021-10-08 20:50:07 字數 2251 閱讀 1775

遇到了幾個問題,記錄一下

ubuntu16.04系統 python3.6 conda (注意ubuntu的可執行檔案就直接是檔名,windows的可執行檔案是exe)

pip install pyinstaller
然後直接

pyinstaller -f 檔名.py
在當前目錄下面有乙個dist資料夾 直接執行./檔名即可

結果在執行的時候出現問題

traceback (most recent call last):

file "site-packages/pyinstaller/loader/rthooks/pyi_rth_pkgres.py", line 13, in file "/home/xx/anaconda3/envs/keras/lib/python3.6/site-packages/pyinstaller/loader/pyimod03_importers.py", line 623, in exec_module

exec(bytecode, module.__dict__)

file "site-packages/pkg_resources/__init__.py", line 86, in modulenotfounderror: no module named 'pkg_resources.py2_warn'

[132693] failed to execute script pyi_rth_pkgres

有文章要降setuptools版本,或者公升級

都對我無效

我是解除安裝了pip上的pyinstaller,改在conda環境裡安裝pyinstaller,結果出現了

traceback (most recent call last)

: file "xx.py"

, line 6,in

file "/home/xx/anaconda3/envs/keras/lib/python3.6/site-packages/pyinstaller/loader/pyimod03_importers.py"

, line 623

,in exec_module

exec

(bytecode, module.__dict__)

file "site-packages/numpy/__init__.py"

, line 151,in

file "/home/xx/anaconda3/envs/keras/lib/python3.6/site-packages/pyinstaller/loader/pyimod03_importers.py"

, line 623

,in exec_module

exec

(bytecode, module.__dict__)

file "site-packages/numpy/ctypeslib.py"

, line 369,in

file "site-packages/numpy/ctypeslib.py"

, line 358

,in _get_typecodes

file "site-packages/numpy/ctypeslib.py"

, line 358,in

modulenotfounderror: no module named 'numpy.core._dtype_ctypes'

先將.py檔案轉換為.spec

pyi-makespec --noupx -f --hidden-import=numpy.core._dtype_ctypes 檔名.py
再生成可執行檔案

pyinstaller 檔名.spec
搞定!

學習鏈結

分析問題出現原因:pyinstaller 打包時有其他的包(未在你檔案內的import中)沒有呼叫成功,所以出現

modulenotfounderror: no module named '***'
其實可以跳過spec的過程,最後顯示缺哪個包就在打包時強行加上這個包。

我在後續打包的時候出現缺少 『six』 包,可以輸入:

pyinstaller -f 檔名.py --hidden-import six
進行編譯得到可執行檔案(根目錄dist下)

順利解決。

pyinstaller打包py檔案為exe方法

pip install pyinstallersuccessefully installed pip xx.xx.xx 安裝成功 2.打包python檔案 1.進入打包檔案所在資料夾,比如 cmd輸入 cd d d llk進入資料夾,入口檔案為run.py 2.打包檔案 在當前路徑下輸入 等待打包結...

pyinstaller打包程式

python打包成exe檔案時,用的是pyinstaller 第一步安裝pyinstaller pip install pyinstaller第二步 pyinstaller f w i ico py其中 ico 是logo,py是你要打包的py檔案 我在打包時出現了struct.error unpa...

pyinstaller打包使用

pyinstaller manage.py 如果直接打包報錯,使用如下命令可以直接生成配置檔案 pyi makespec d manage.py生成的配置檔案格式如下 mode python coding utf 8 block cipher none a analysis impala etl.p...