V2EX 1779930755cmy0
 1779930755cmy0 最近的时间轴更新
1779930755cmy0

1779930755cmy0

V2EX 第 512547 号会员,加入于 2020-10-13 14:12:04 +08:00
1779930755cmy0 最近回复了
2022-06-14 12:05:50 +08:00
回复了 LeeReamond 创建的主题 Python Python 现代化打包应用到 exe 的方式?
2022-06-14 10:37:07 +08:00
回复了 LeeReamond 创建的主题 Python Python 现代化打包应用到 exe 的方式?
就我的经验来说,@Osk 这位老哥的办法是最简单、可操作性最强且不容易出问题的,我在这里稍微补充一点细节:
1. 从 python 官网下载 embedded 版本的 python 压缩包,目前最后支持 win7 的版本是 3.8 ,我个人用的是 3.8.7 。
2. 解压 python embedded 压缩包(假设解压到 c:/python )以后,找到 [python38._pth] 这个文件并打开,去掉 [import site] 前面的 [#] 。
3. 下载 [get-pip.py] 文件,放到 python 文件夹里,打开 cmd ,进入 c:/python 目录,执行 python get-pip.py ,跑完以后 python embedded 就有了使用 pip 安装模块的能力,之后就可以在 pycharm 中安装模块了,比如 pyqt5 。如果使用 cmd 安装模块,需要先 cd c:/python ,然后 python -m pip install 模块名。
4. 写程序的过程中要注意,在 main.py 中引用自己写的.py 文件时可能会失败,这是环境变量的问题,我的解决办法是在程序开头添加临时环境变量,如果自己写的需要引用的.py 文件跟 main.py 在同一路径下的话,可以这么写:
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__))),这一句的意思是把 main.py 所在路径临时添加到系统变量中。
5. 写完 python 程序以后,写一个批处理 bat 文件,假设文件名为“启动程序.bat”,用来执行 main.py 程序,这是因为环境变量里没有嵌入式 python 的路径,需要指定 python.exe 的路径。一个简单的写法如下:
cd c:/python
python "c:/python/Projects/hello world/main.py"
pause
6. 如果不喜欢程序打开后伴随的 cmd 控制台窗口,可以去搜索隐藏控制台的 bat 代码,写在“启动程序.bat”开头即可。
7. 将整个 python 文件夹压缩,发给其他人,随便他解压到哪个地方,只要双击“启动程序.bat”,就能运行你写好的 py 程序,到此真正实现免配置、便携化 python 程序的目的。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3835 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 12ms UTC 05:17 PVG 13:17 LAX 22:17 JFK 01:17
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86