網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
windows使用Pycharm 對(duì)python文件進(jìn)行打包
首先建立python項(xiàng)目的時(shí)候要按照標(biāo)準(zhǔn)來(lái)建設(shè)
我使用的python配置的解釋器,沒有使用python的虛擬環(huán)境,因?yàn)樘摂M環(huán)境建設(shè)出來(lái)的項(xiàng)目不是我想要的項(xiàng)目結(jié)構(gòu) ,包結(jié)構(gòu)比較多,看著不是很舒服
配置完成后 點(diǎn)擊創(chuàng)建
創(chuàng)建完成后可以自己創(chuàng)建合適包結(jié)構(gòu)
創(chuàng)建完合適的包結(jié)構(gòu)后,就可以編寫python代碼了,但要python代碼運(yùn)行開,需要配置運(yùn)行環(huán)境
環(huán)境配置調(diào)試好就可以運(yùn)行調(diào)試python代碼,代碼沒有問題,需要打包運(yùn)行測(cè)試 我只是在windows環(huán)境運(yùn)行驗(yàn)證
我使用的是pyinstaller 進(jìn)行的打包測(cè)試
首先需要先安裝pyinstaller 命令 pip install pyinstaller 安裝pyinstaller之前,需要先有python環(huán)境,同時(shí)也需要安裝 piphttps://pypi.org/project/pip/
因?yàn)槲乙呀?jīng)安裝過了 所以提示已經(jīng)安裝 (安裝可以使用cmd黑窗口,也可以使用軟件,沒有區(qū)別)
在安裝pyinstaller的同時(shí),可能會(huì)報(bào)錯(cuò),說什么pip的版本可能不匹配,建議升級(jí) pip版本 14 更新pip版本的方法
python -m pip install --upgrade pip
查詢匹配的版本 pip -V
下面進(jìn)行打包
- -F, –onefile 打包一個(gè)單個(gè)文件,如果你的代碼都寫在一個(gè).py文件的話,可以用這個(gè),如果是多個(gè).py文件就別用
- -D, –onedir 打包多個(gè)文件,在dist中生成很多依賴文件,適合以框架形式編寫工具代碼,我個(gè)人比較推薦這樣,代碼易于維護(hù)
- -K, –tk 在部署時(shí)包含 TCL/TK
- -a, –ascii 不包含編碼.在支持Unicode的python版本上默認(rèn)包含所有的編碼.
- -d, –debug 產(chǎn)生debug版本的可執(zhí)行文件
- -w,–windowed,–noconsole 使用Windows子系統(tǒng)執(zhí)行.當(dāng)程序啟動(dòng)的時(shí)候不會(huì)打開命令行(只對(duì)Windows有效)
- -c,–nowindowed,–console 使用控制臺(tái)子系統(tǒng)執(zhí)行(默認(rèn))(只對(duì)Windows有效)
打包成功會(huì)出現(xiàn)下面成功的標(biāo)識(shí)
打包完成運(yùn)行時(shí),可能會(huì)出現(xiàn)找不到python模塊的問題,這時(shí)候就需要查看到底什么模塊包找不到
可以先看上面的圖片有沒有 ,沒有的話 點(diǎn)擊上面圖片偏左下角的加號(hào)
輸入需要的模塊包,進(jìn)行安裝, 因?yàn)閲?guó)內(nèi)有好幾個(gè)鏡像存儲(chǔ)庫(kù),模塊包的情況可能會(huì)不一樣
存儲(chǔ)庫(kù)可以進(jìn)行添加和刪除
如果通過界面安裝失敗, 也可以通過命令進(jìn)行安裝
首先需要查看模塊包是否存在在環(huán)境的包路徑下 命令 pip show 模塊名稱
如果包存在就會(huì)顯示上面一樣 ,
下面是我查詢一個(gè)根本不存在的包
沒有包的需要命令安裝,安裝之前需要先下載包 https://www.lfd.uci.edu/~gohlke/pythonlibs/
安裝命令為 安裝包 pip install -y pyinstaller pip install 包名
卸載包 例如 pip uninstall -y pyinstaller
pip uninstall -y 包名
再次打包exe文件 pyinstaller -F xxx.py
因?yàn)槭莈xe文件 所以可以雙擊運(yùn)行,但是運(yùn)行會(huì)存在黑窗口,如果被人誤關(guān)掉,進(jìn)程就不會(huì)存在
所以需要后臺(tái)啟動(dòng),這樣就不會(huì)存在,誤操作的失誤,這樣進(jìn)程想要結(jié)束的話,可以通過任務(wù)管理器來(lái)執(zhí)行關(guān)閉
echo off D:\develop\PYCharm\PYCharmWorkSpace\test_Agent\windows\winAgent\judgeFile_and_access_to_information\dist\judg_and_get_message.exe pause
DIM objShell set objShell=wscript.createObject(“wscript.shell”) iReturn=objShell.Run(“cmd.exe /C judge_and_getMessage.bat”, 0, TRUE)
bat文件和exe雙擊效果是一樣的,vbs結(jié)尾的文件,是屬于后臺(tái)啟動(dòng)的,但是vbs的文件依賴bat文件
所這些文件最好在同一級(jí)目錄下面
總結(jié)
原文鏈接:https://blog.csdn.net/weixin_45082972/article/details/114388237
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-07-28 C++超詳細(xì)講解函數(shù)重載_C 語(yǔ)言
- 2022-04-12 Python實(shí)現(xiàn)批量向PDF文件添加中文水印_python
- 2022-04-17 解決activiti7的懶加載機(jī)制無(wú)法將Task結(jié)果直接返回
- 2022-06-22 關(guān)于Pycharm配置翻譯插件Translation報(bào)錯(cuò)更新TTK失敗不能使用的問題_python
- 2023-04-26 Numpy對(duì)于NaN值的判斷方法_python
- 2022-06-18 Android?ProgressBar實(shí)現(xiàn)進(jìn)度條效果_Android
- 2021-12-07 關(guān)于postman上傳文件執(zhí)行成功而使用collection?runner執(zhí)行失敗的問題_相關(guān)技巧
- 2022-07-14 一文教會(huì)你用redux實(shí)現(xiàn)computed計(jì)算屬性_React
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支