python打包exe文件步骤及遇到的问题

9 篇文章 0 订阅
9 篇文章 1 订阅

python打包exe文件步骤及遇到的问题

Pyinstaller使用及问题记录

安装Pyinstaller

在python环境下安装pyinstaller,直接安装

pip install pyinstaller

image-20220314170743488

如果网不好或者下载安装时间太慢,可以使用下面阿里镜像加速

pip3 install pyinstaller -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

安装成功

image-20220314170845215

pyinstaller使用

Pyinstaller常用参数

-h,–help查看该模块的帮助信息
-F,-onefile产生单个的可执行文件
-D,–onedir产生一个目录(包含多个文件)作为可执行程序
-a,–ascii不包含 Unicode 字符集支持
-i, --icon使用ico图标作为打包后txt的图标
-d,–debug产生 debug 版本的可执行文件
-w,–windowed,–noconsolc指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c,–nowindowed,–console指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR,–out=DIR指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR,–path=DIR设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
-n NAME,–name=NAME指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

实例

-F 选项可以打出一个exe文件,默认是 -D,意思是打成一个文件夹。

pyinstaller -F test.py

image-20220314194319525

-w 选项可以打桌面程序,去掉命令行黑框

pyinstaller -F -w test.py

不加-w

image-20220314194406491

-i给打包的exe文件添加图标

pyinstaller -F -w -i tt.ico test_tk.py

image-20220314194756915

pyinstaller使用错误缺少pywin32

pic3

安装pywin32

pip安装,即可

pip install pywin32

conda环境注意事项

在使用pyinstaller打包时,如果项目环境是部署在conda环境中的,一定要进入conda环境进行打包,这样一些必要的依赖包才会被打包进去,否者打包的项目文件也会因为没有环境无法运行

conda环境迁移

在线迁移

1、在迁出环境中操作,导出conda环境

 conda env export > environment.yml

2、导出pip环境

pip freeze > requirements.txt

3、在新机器上重现环境

#恢复conda环境 
conda env create -f environment.yml
#恢复pip包
pip install -r requirements.txt
#遇到错误中断,使用如下命令
while read requirement; do  pip install $requirement; done < requirements.txt

注:因为是直接安装名称和版本号,所以到了新环境需要重新下载,时间长短根据网络好坏判定

值得注意的一点

如果你想迁移的环境就是base环境,那么会遇到命名错误的问题,最省事的办法就是换个名字再迁移

conda create -n other_name   #将环境克隆,取名为other_name

离线迁移(Conda Pack)

Conda-pack 是一个命令行工具,用于打包 conda 环境,其中包括该环境中安装的软件包的所有二进制文件。 当您想在有限或没有网络访问的系统中重现环境时,此功能很有用。上面的方法均从其各自的存储库下载软件包以创建环境。而此方法不需要。注意,conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平台和操作系统。

安装

要安装 conda-pack,请确保您位于 root 或 base 环境中,以便 conda-pack 在子环境中可用。Conda-pack 可通过 conda-forge 或者 PyPI 安装。

conda安装

conda install -c conda-forge conda-pack

pip安装

pip install conda-pack

打包环境
# 打包环境,不指定压缩包名字,默认会和环境名字相同my_env.tar.gz
conda pack -n my_env

# 打包时指定压缩包名字 other_name
conda pack -n my_env -o other_name.tar.gz

还原环境
#在新环境的conda安装路径下env文件下新建文件new_env
mkdir -p my_env
tar -xzf my_env.tar.gz -C annaconda/env/new_env
#解压后通过终端可以查看到新增了一个环境
conda info -e
#激活环境/进入环境
activate new_env

conda中python虚拟环境作为系统python环境

确保环境conda环境可用情况下,将conda python环境下的三个文件分别加入系统路径

D:\annaconda\envs\py37
D:\annaconda\envs\py37\Scripts
#这个路径对打包或者调用一些dll文件很重要,没有会导致打包的exe为文件找不到系统某个模块
D:\annaconda\envs\py37\Library\bin

打包运行错误

Error loading “C:\Anaconda3\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll”

在这里插入图片描述

检查系统环境是否完整,尤其是迁移的环境,可以通过下面方式测试

分别在conda环境和系统环境下运行程序,如果出现相同的错误,这不是环境问题,请使用其他方法解决,否者就同步两边的环境,或者是将虚拟环境按照上面的说法变成系统环境

另外请注意torch的版本,使用torch1.6.0会出现这种恶心人的问题,亲身经历啊,如果没有版本要求,升级你的torch版本,再重新打包就可以了。
还要确认pyinstaller 是否下载正确,可以考虑更换版本试一下。
也可参考该博客进行解决

https://www.cnblogs.com/pengpengdeyuan/p/13589089.html
https://blog.csdn.net/u012219045/article/details/115397646

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值