02.pycharm中配置PyInstaller打包工具

02.pycharm中配置PyInstaller打包工具我用的环境版本python解释器:3.6.6pycharm开发工具:2018.3.6社区版PyInstaller打包工具:4.5.1pycharm中配置PyInstaller打包工具opts可选的参数参数含义-F-onefile,打包成一个exe文件-D-onefile,创建一个目录,包含exe文件,但会依赖很多文件(默认选项)-c-console,-nowindowed,使用控制台,无窗口(默认)-w-Windowed,-noconsole,使用窗

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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'

Jetbrains全家桶1年46,售后保障稳定

然后我们在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中。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 预测算法用java实现吗_java 数据结构与算法

    预测算法用java实现吗_java 数据结构与算法常见的预测算法有1.简易平均法,包括几何平均法、算术平均法及加权平均法;2.移动平均法,包括简单移动平均法和加权移动平均法;3,指数平滑法,包括一次指数平滑法和二次指数平滑法,三次指数平滑法;4,线性回归法,包括一元线性回归和二元线性回归,下面我一一的简单介绍一下各种方法。 4P5?.C(B4j”^5_2h  一,简易平均法,是一种简便的时间序列法。是以一定观察期的数据求得

    2025年6月18日
    2
  • css模糊遮罩效果_CSS 半透明遮罩层「建议收藏」

    css模糊遮罩效果_CSS 半透明遮罩层「建议收藏」很多时候,我们需要通过一层半透明的遮罩层来把后面的一切整体调暗,以便凸显某个特定的UI元素,引导用户关注,比如弹出层或者交互指南。这个效果的传统方法就是增加一个额外的HTML元素用于遮挡背景添加如下样式:.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.8);}.lig…

    2022年7月13日
    105
  • idea破解教程2019.3(idea旗舰版如何破解)

    我自己在网上看半天找出来的,主要是破解补丁不知道怎么对应,第一步:下载安装包与破解补丁:安装包:链接:https://pan.baidu.com/s/1Ohy-cp-wrwb1YLelD3DLZA提取码:czdf破解补丁:链接:https://pan.baidu.com/s/1bj2EHJ_BAcfN6IZHQKAh_Q提取码:v3vr第二步:修改idea文件将破解补丁放到…

    2022年4月17日
    97
  • arraydeque方法_arrayset

    arraydeque方法_arrayset美人如斯!ArrayDeque是java中对双端队列的线性实现一.特性无容量大小限制,容量按需增长; 非线程安全队列,无同步策略,不支持多线程安全访问; 当用作栈时,性能优于Stack,当用于队列时,性能优于LinkedList 两端都可以操作 具有fail-fast特征 不能存储null 支持双向迭代器遍历注意:ArrayDeque的迭代器和大多数容器迭代器一样,都是…

    2022年9月21日
    2
  • javaWeb实现qq邮箱验证(二)「建议收藏」

    javaWeb实现qq邮箱验证(二)「建议收藏」上篇写的实现基本上是一个工具类,并没封装成下图这样方式(梨视频注册界面),现在开始完善上篇的java邮箱激活验证功。java邮箱验证地址:https://blog.csdn.net/BlackPlus28/article/details/85044068———————————————————————…

    2022年6月13日
    41
  • C++ 核心编程

    C++核心编程引用**作用:**给变量起别名语法:数据类型&别名=原名引用是一种特殊的指针类型,引用一旦被定义就不能重新赋值,并且不能被设置为空值。intmain()

    2021年12月13日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号