在 Mac OS 用 PyInstaller 打包 python
阿新 • • 發佈:2018-12-22
pyinstaller 打包用指令:
pyinstaller myscript.py
或是用
pyinstaller myscript.spec --clean
這個 .spec 檔案會在第1次執行 pyinstall myscript.py 之後產生
喜歡產生單一檔案的人,可以使用下面這行來 build
pyinstaller -F myscript.spec --clean
pyinstall default 是 -D,Create a one-folder bundle containing an executable (default).
如果執行 pyinstaller 出現下面的錯誤訊息:
-bash: pyinstaller: command not found
是因為你的 ./venv/ 目錄裡的「設定值」是錯誤的,發生的原因有2:
- 交叉使用了 sudo 和一般 user 的許可權,一般 user 許可權無法修改透過 sudo 指令下載下來的檔案,造成找不到指定的檔案。
- 修改了原本 ./venv/ 的 parent folder 的 folder name, 造成找不到實際的檔案。
解法就是先用 sudo rm -rf ./venv/ 把目錄完整且乾淨清掉後,重新再來一次即可。
通過pip安裝virtualenv:
$ pip install virtualenv
$ cd your_project_folder $ virtualenv venv $ . venv/bin/activate
滿有趣的,提示字元前多了一個(venv)
要退出,就是下 deactivate
即可。
只有第1次需要下 virtualenv venv
之後要進去,就是. venv/bin/activate
就進去了。
滿神奇的,可以不需要下 sudo 就可以透過 pip 安裝所有的程式。virtualenv 裡是乾淨的,所以所有第3方的 package 需要重新 pip install 一次。
打包完成後,執行看看,發現所有的 module name 都消失了,變成 __init__