python pyinstaller 打包代碼生成exe可執行文件

目的:

“讓正在走彎路的人走上直路”

作者的彎路

我按照網上的教程,用pyinstaller 打包三個py源程序,然後生成一個exe文件。但是,每次exe文件執行後,彈出一個框後迅速消失,內容大概是‘XXX modul 不存在‘,然後上網查各種打包缺失模塊的資料,大多都是不可行的。

解決方案

目前存在我知道的是用pyinstaller是有兩種方法打包py代碼的:
1.直接用pyinstaller -F/-D xxx.py類似這樣的方式,這種方式很基礎,但往往出問題。
2.用spec文件,pyinstaller xxx.spec
spec文件就是在你執行第一種方式時,它會產生在你當前操作的文件下,是自動產生的。如果出現缺失模塊的問題(這也是作者出現的問題),就在這個文件裏面添加你的模塊地址。

# -*- mode: python ; coding: utf-8 -*-
block_cipher = None

a = Analysis(['project_ui.py','python_sap.py','file_model.py'],
#在pathex中添加你的python模塊的地址,我的模塊都是在pkg文件下,然後放進去。
			 pathex=['python_sap.py', 'file_model.py','C:\\Users\\10003144\\PycharmProjects\\test_dataming\\venv\\pkg','D:\\script2'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             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,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='project_ui',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=False )

其他的參數建議去pyinstaller官網查看。
配置完spec文件後,使用pyinstaller xxx.spec,就可以了。在這期間也查閱了很多文章,都寫得不錯,感謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章