大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
我用的环境版本
python解释器:3.6.0
pycharm开发工具:2018.3.6社区版
PyInstaller打包工具:3.6
pycharm中配置PyInstaller打包工具
opts可选的参数
参数 | 含义 |
---|---|
-F | -onefile,打包成一个exe文件 |
-D | -onefile,创建一个目录,包含exe文件,但会依赖很多文件(默认选项) |
-c | -console,-nowindowed,使用控制台,无窗口(默认) |
-w | -Windowed,-noconsole,使用窗口,无控制台 |
Pyinstaller在pycharm的支持配置
name:Pyinstaller EXE(可自定义)
Program:pyinstaller.exe文件所在的路径,可参考下列路径
( C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Scripts\pyinstaller.exe)
arfuments:-F $FileNameWithoutExtension$.py
working:$FileDir$
增加压缩工具
INFO: UPX is not available.
在打包过程中总是出现这一句,经查,是pyinstaller支持压缩,使用UPX压缩,官方地址https://upx.github.io/
居然没有windows64位,32位拉来试试吧。不行就不压缩。
使用很简单,把获取的upx.exe放在pyinstaller目录下就可以了。
再次尝试打包:
INFO: UPX is available.
看来UPX压缩已经激活了
将库文件单独存放在目录中
可以通过如下方法,把这些库文件放到 单独的一个 目录中。 这样.exe所在的目录就显得比较清爽了,也好找到.exe文件了。
我们添加一个Python代码文件,名为 runtimehook.py
其内容如下
import sys
import os
currentdir = os.path.dirname(sys.argv[0])
libdir = os.path.join(currentdir, "lib")
print(currentdir)
sys.path.append(libdir)
os.environ['path'] += ';./lib'
然后我们在cmd窗口, cd进入代码byhy文件所在的目录下面,执行制作exe命令时,加上 参数 –runtime-hook=“runtimehook.py”
pyinstaller byhy.py --workpath d:\pybuild --distpath d:\pybuild\dist --runtime-hook="runtimehook.py"
上面的命令指定 生成的.exe运行时,会先执行 runtimehook.py 里面的代码。
这样就会指定 .exe 程序所在的目录下面的lib目录 为
Python库搜索路径,这是由 sys.path.append(libdir) 指定的。
动态链接库文件的 搜索路径,这是由 os.environ[‘path’] += ‘;./lib’ 指定的。
上面的命令执行结束后,我们进入到 目录 d:\pybuild\dist\byhy 中,新建一个名为 lib 的目录,把除了下面的几个文件之外的所有其他文件都放到lib目录里面。
base_library.zip
byhy.exe
byhy.exe.manifest
python36.dll
这样,可执行程序的目录就显得清爽多了。
注:将库文件单独存放在目录中打包需要更改
pycharm中的工具
arfuments:-F $FileNameWithoutExtension$.py
更改为
-w $FileNameWithoutExtension$.py –noconsole –workpath f:\pybuild –distpath f:\pybuild\dist –runtime-hook=“runtimehook.py”
执行后打包好的文件会生成到F盘下的pybuild中。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219224.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...