02.pycharm中配置PyInstaller打包工具

2022-11-17 14:13:01 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

我用的环境版本 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:UsersAdministratorAppDataLocalProgramsPythonPython36-32Scriptspyinstaller.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

其内容如下

代码语言:javascript复制
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”

代码语言:javascript复制
pyinstaller byhy.py --workpath d:pybuild  --distpath d:pybuilddist --runtime-hook="runtimehook.py"

上面的命令指定 生成的.exe运行时,会先执行 runtimehook.py 里面的代码。

这样就会指定 .exe 程序所在的目录下面的lib目录 为

Python库搜索路径,这是由 sys.path.append(libdir) 指定的。

动态链接库文件的 搜索路径,这是由 os.environ[‘path’] = ‘;./lib’ 指定的。

上面的命令执行结束后,我们进入到 目录 d:pybuilddistbyhy 中,新建一个名为 lib 的目录,把除了下面的几个文件之外的所有其他文件都放到lib目录里面。

代码语言:javascript复制
base_library.zip
byhy.exe
byhy.exe.manifest
python36.dll

这样,可执行程序的目录就显得清爽多了。

注:将库文件单独存放在目录中打包需要更改 pycharm中的工具 arfuments:-F FileNameWithoutExtension.py 更改为 -w FileNameWithoutExtension.py –noconsole –workpath f:pybuild –distpath f:pybuilddist –runtime-hook=“runtimehook.py”

执行后打包好的文件会生成到F盘下的pybuild中。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/219224.html原文链接:https://javaforall.cn

0 人点赞