IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python打包exe文件步骤及遇到的问题 -> 正文阅读

[Python知识库]python打包exe文件步骤及遇到的问题

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

也可参考该博客进行解决

https://www.cnblogs.com/pengpengdeyuan/p/13589089.html

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:18:55  更:2022-03-16 22:20:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:57:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码