Windows PyCharm 采用虛擬環(huán)境打包可執(zhí)行文件
Windos Pycharm 打包可執(zhí)行文件的方式,網(wǎng)上有很多人分享了羊苟,推薦一篇詳細(xì)的文章:
Pycharm Windows 打包可執(zhí)行程序
這篇文章詳細(xì)介紹了PyCharm打包exe文件的配置泌枪,這里僅在此作為補(bǔ)充缀蹄,建議看過上邊的文章后尘分,再來看這篇文章會(huì)比較清晰糊治,上篇文章按照配置下來唱矛,是默認(rèn)python 編譯、打包的環(huán)境為全局環(huán)境井辜。
但是實(shí)際項(xiàng)目中绎谦,需要針對每個(gè)項(xiàng)目采用虛擬環(huán)境的方式安裝依賴,這種安裝方式有如下好處:
- 可以與全局環(huán)境分隔粥脚,靈活規(guī)劃依賴包
- 避免pyinstaller打包后的exe文件過大窃肠,僅打包虛擬環(huán)境中的依賴包,而非全局
當(dāng)我們采用虛擬環(huán)境創(chuàng)建項(xiàng)目時(shí)候刷允,項(xiàng)目的設(shè)置如下:
創(chuàng)建成功項(xiàng)目后冤留,可以直接安裝依賴包在虛擬環(huán)境中,
我們可以直接通過PyCharm 在虛擬環(huán)境中安裝依賴包树灶,通過菜單欄 文件->設(shè)置->項(xiàng)目->Python解釋器->增加纤怒。
此時(shí)的依賴包在虛擬環(huán)境中,位置在<項(xiàng)目文件夾>\env 下天通。
然后我們在虛擬環(huán)境中安裝pyinstaller泊窘。
接下來我們配置,外部工具用來做簡易的打包環(huán)境:
可以看到我們配置的參數(shù)有些不同土砂,這里我先復(fù)制下來命令,方便大家直接拷貝:
$PyInterpreterDirectory$\pyinstaller.exe
PyInterpreterDirectory:這個(gè)變量的意思就是虛擬環(huán)境下的腳本目錄谜洽,我們安裝的pyinstaller就在這里萝映,即
<項(xiàng)目文件夾>\env\Scripts\pyinstaller.exe
這個(gè)時(shí)候運(yùn)行外部工具應(yīng)該就可以正常打包為exe了,所用的環(huán)境時(shí)虛擬環(huán)境中的依賴阐虚。
當(dāng)我們使用虛擬環(huán)境打包遇到報(bào)錯(cuò)ModuleNotFoundError: No module named 'xxx'
錯(cuò)誤的時(shí)候序臂,有一種情況,即pyinstaller.exe是引用的全局的,此時(shí)pyinstaller.exe會(huì)查找全局依賴包打入exe奥秆,但是我們的依賴包是安裝在虛擬環(huán)境中逊彭,那此時(shí)肯定會(huì)報(bào)找不到的錯(cuò)誤。 我們可以把全局的pyinstaller.exe刪除构订,然后僅使用虛擬環(huán)境的pyinstaller.exe打包程序侮叮。
當(dāng)然我們不使用外部工具的情況下,也可以直接在虛擬終端運(yùn)行打包命令: