本文目錄一覽:
- 1、python setup.py打包時,如果除了.py文件外,還有一個文件夾需要打包應該怎麼辦
- 2、怎麼將多個python打包成exe文件
- 3、Python打包輸入pip install pyinstaller 失敗 這是啥意思 版本不行嗎?
- 4、Linux下,Python項目包含多個模塊以及圖片包,跪問如何用pyinstaller將其打包在一起?
- 5、pyinstaller 如何打包圖片資源的?
python setup.py打包時,如果除了.py文件外,還有一個文件夾需要打包應該怎麼辦
如果是一個 Python 包的文件夾,應當在 setup.py 中作為 package 引入;如果是其他類型的文件夾,比如資源文件,圖片文件,可以以 resource dir 引入,具體引入方式可以參照官方文檔
怎麼將多個python打包成exe文件
1、安裝pywin32,可以參考《怎麼給python安裝pywin32模塊?》,一定要注意對應的python版本,否則不能安裝。
2、用命令行調用pip安裝pyinstaller。
3、準備一個py文件,一個爬取電子書的python文件——00.py。
4、準備一個圖片,作為exe的圖標:b.ico,注意圖片格式是ico的,大小為32*32,不要太大。沒有的話,可以在網上免費轉格式。把00.py和b.ico放到一個目錄裡面——C:\a
5、把cmd的當前目錄切換到C:\a。
6、然後執行命令行: pyinstaller -F -i b.ico 00.py
7、運行之後,cmd變成了這樣。
8、在C:\a目錄裡面,多出了幾個文件夾。可執行文件00.exe就在dist文件夾裡面。
9、雙擊可執行文件,會彈出一個命令提示符埠,提示你輸入書號。按照格式輸入書號,點擊回車鍵,就可以在dist文件夾裡面,看到一章章的電子書被下載下來了。
Python打包輸入pip install pyinstaller 失敗 這是啥意思 版本不行嗎?
您輸入的代碼可能不是打包代碼,而是下載打包軟體的代碼。
正常的代碼是這樣的:
Pyinstaller -F “C:\test.py” -i “C:\1.ico”
您的第一張圖片的意思應該是:下載xx(某某)完成
第二張圖片的代碼不是打包代碼,所以系統不識別。所以出錯了
若有疑問請追答,謝謝!
Linux下,Python項目包含多個模塊以及圖片包,跪問如何用pyinstaller將其打包在一起?
python的模塊,pyinstall會自動編譯為位元組碼然後一起打包。
至於另外的圖片等資源文件,需要自行書寫打包配置文件spec。
先用pyinstaller 的 –onefile 選項自動生成一個spec文件,
然後修改這個spec文件案,如要加入圖片等附屬文件,
要加入到datas中,格式如下:
datas += [(“軟體包內的相對路徑/file.name”,”/實際路徑/file.name”,”DATA”)]
文件列表也可以用Tree生成。Tree(“/實際路徑/file.name」, prefix = 「軟體包內的相對路徑」)
下面是一個spec文件的例子
a = Analysis([“/tmp/start.py”],
pathex=[“/tmp”],
hiddenimports=[],
hookspath=None,
runtime_hooks=None
dict_tree = Tree(“/tmp/pic”, prefix = “pic”)
a.datas += dict_tree
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=”test”,
debug=False,
strip=None,
console=False )
pyinstaller 如何打包圖片資源的?
問題描述:
使用 pyinstaller -F ***.py 打包後,運行閃退,
提示找不到資源文件。
解決方法:
實驗數據處理需要,之前用Python寫了一個小程序,為了方便使用就用Tk寫了個界面,打包時遇到了如題一樣的困惑,不過參考pyinstaller的官方文檔解決了,所以建議遇到類似問題的時候官方文檔是第一參考,以免浪費時間。下面是將打包數據文件的絕對路徑轉為相對路徑的一個腳本,利用的是os的path模塊和 sys._MEIPASS:from os import pathimport sysbundle_dir = getattr(sys, ‘_MEIPASS’, path.abspath(path.dirname( file )))path_to_dat = path.join(bundle_dir, ‘other-file.dat’)將這個腳本加入到主腳本文件中,用轉換的路徑代替原來腳本中數據文件的絕對路徑即可。打包數據可以利用–add-data命令或者使用.spec文件,不多贅述Reference:
嘗試了成功解決:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283269.html