pyinstaller將含有多個(gè)py文件的python程序做成exe
1.盡量將資源文件夾放到主文件夾下
2.pyi-makespec main.py
制作spec文件
3.spec文件在當(dāng)前文件夾下,main.spec
編輯spec文件
# -*- mode: python -*- block_cipher = None a = Analysis(['main.py', 'monitor.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\caption_recognizer.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\image_recognizer.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\image_vectorizer.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\network2.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\test_fun.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\unicom_area.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\unicom_area_finder.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\unicom_area_include_caption_judger.py', 'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\value_vectorizer.py'], pathex=['E:\\py_project\\test_wpf_python_msg'], binaries=[], datas=[('E:\\py_project\\test_wpf_python_msg\\images', 'images'), ('E:\\py_project\\test_wpf_python_msg\\network_parameters', 'network_parameters')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, exclude_binaries=True, name='main', debug=False, strip=False, upx=True, console=True ) coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='main')
(1)第一個(gè)列表中寫(xiě)所有的py文件,與main一個(gè)文件夾的可以直接寫(xiě)文件名,不一個(gè)文件夾的需要寫(xiě)完整的文件路徑。
我曾試過(guò)在pathex中加入其他文件的路徑,然后其他py文件不寫(xiě)完整路徑,只寫(xiě)文件名,但是失敗了。
(2)datas是中的元素是tuple類型,tuple的第一個(gè)參數(shù)是python項(xiàng)目中data文件(非py文件)的路徑,
第二個(gè)參數(shù)是data在exe中保存此資源的文件夾名,要和項(xiàng)目中的文件夾名相同
(3)最重要: 因?yàn)榫幾g成exe之后的main.exe是在最外層的文件夾的。因?yàn)閙ain.py是入口文件,所以被調(diào)用的其他py文件的當(dāng)前路徑都是main.py文件的當(dāng)前路徑。所以在源代碼中就一定要把main.py放到最外層的項(xiàng)目文件夾中,這樣main.py的當(dāng)前路徑才能和main.exe的路徑保持一致,才能讓其他的py文件的當(dāng)前路徑不變,他們才可以找到data資源。
4.用之前配置的spec文件制作exe: pyinstaller -d main.spec
使用-d制作出來(lái)的exe比使用-f的快很多,因?yàn)?f把所有dll文件都打包到一個(gè)exe中了。
5.生成的exe在dist文件夾中
到此這篇關(guān)于pyinstaller將含有多個(gè)py文件的python程序做成exe的文章就介紹到這了,更多相關(guān)pyinstaller py打包成exe內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家
相關(guān)文章
分享4個(gè)Python中的非常好用的自動(dòng)化腳本
這篇文章為大家準(zhǔn)備了4個(gè)很棒的Python自動(dòng)化腳本,可以解決這些問(wèn)題。文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2022-11-11利用Python3實(shí)現(xiàn)統(tǒng)計(jì)大量單詞中各字母出現(xiàn)的次數(shù)和頻率的方法
這篇文章主要介紹了利用Python3實(shí)現(xiàn)統(tǒng)計(jì)大量單詞中各字母出現(xiàn)的次數(shù)和頻率,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03基于Python的EasyGUI學(xué)習(xí)實(shí)踐
這篇文章主要介紹了基于Python的EasyGUI學(xué)習(xí)實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05Python?操作?MongoDB數(shù)據(jù)庫(kù)的方法(非?ODM)
這篇文章主要介紹了Python?操作?MongoDB?----非?ODM的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Python實(shí)現(xiàn)CNN的多通道輸入實(shí)例
今天小編就為大家分享一篇Python實(shí)現(xiàn)CNN的多通道輸入實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Pytorch中的 torch.distributions庫(kù)詳解
這篇文章主要介紹了Pytorch中的 torch.distributions庫(kù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02