Python如何打包为exe文件

您所在的位置:网站首页 exe程序怎么改编写 Python如何打包为exe文件

Python如何打包为exe文件

2023-04-11 10:46| 来源: 网络整理| 查看: 265

为什么要打包?

当你想把你做的python游戏或者是脚本等.py文件发给别人时,打包为.exe文件,即使对方没有安装python也能运行。

安装pyinstaller

安装pyinstaller很简单,直接cmd使用pip命令即可

1pip install pyinstaller pyinstaller打包项目全过程

项目包含多个 Python 文件、多个个资源文件夹,资源文件夹里面又包含了一些子文件夹和 图片。

第一步:启动虚拟环境,切换至目标文件夹路径位置

虚拟环境创建方法见本文附录

如图已进入项目目录,虚拟环境已激活(py37)

第二步:虚拟环境安装pyinstaller与其他第三方包(使用虚拟环境是为了使得依赖包调用最少,尽量使exe文件为轻量级)1pip install pyinstaller

第三步:生成 spec 文件(Pyinstaller 已经安装)1pyi-makespec -F -w Main.py

第五步:编辑 spec 文件

如图所示,第一个方框内是写入所有打包的.py文件,datas中写入所有项目的资源文件夹,由于我将其他python文件编写为了python软件包并放在了虚拟环境目录下,所以只有一个Main.py需要被打包。

自己编写的包可以放在虚拟环境的”.\venv\Lib\site-packages”路径下,关于如何将自己写的python文件编为python软件包:文件夹内含有“init.py”文件,则该文件夹默认为python软件包

第六步:打包项目(注意这里的对象是 spec 文件)1Pyinstaller Main.spec

打包成功!

注:我的项目文件中用到了虚拟环境中face_recognition_models文件夹下的shape_predictor_68_face_landmarks.dat,但是打包过程中无法将它跟随虚拟环境打包,于是我将它跟随资源文件打包,解决了这个问题。

最后在项目中的 dist 文件夹,打开后会有一个 exe 文件,该文件可在windows系统中独立执行,不再依赖自行创建的python环境。

参数选项 描述 -F, -onefile 只生成一个单个文件(只有一个 exe 文件) -D, -onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,这样代码易于维护 -K, –tk 在部署时包含 TCL/TK -a, -ascii 不包含编码在支持 Unicode 的 Python 版本上默认包含所有的编码 -d, -debug 产生 debug 版本的可执行文件 -w, -windowed, -noconsole 使用 Windows 子系统执行当程序启动的时候不会打开命令行(只对 Windows 有效) -c, -nowindowed, -console 使用控制台子系统执行(默认)(只对 Windows 有效)、pyinstaller -c xxxx.py、pyinstaller xxxx.py —console -s, -strip 可执行文件和共享库将 run through strip -X, -upx 如果有 UPX 安装(执行 Configure.py 时检测),会压缩执行文件( Windows 系统中的 DLL 也会) -o DIR, -out=DIR 指定 spec 文件的生成目录,如果没有指定,而且当前目录是 PyInstaller 的根目录,会自动创建一个用于输出( spec 和生成的可执行文件)的目录、如果没有指定,而当前目录不是 Pyinstaller 的根目录,则会输出到当前的目录下 -p DIR, -path=DIR 设置导入路径(和使用 PYTHONPATH 效果相似)、可以用路径分割符( Windows 使用分号,Linux 使用冒号)分割,指定多个目录、也可以使用多个 -p 参数来设置多个导入路径,让 pyinstaller 自己去找程序需要的资源 -i -icon= 将 file.ico 添加为可执行文件的资源(只对 Windows 系统有效),改变程序的图标

以上是pyinstaller常用命令,更多内容请见官网

附录 Python常用命令创建虚拟环境

python创建虚拟环境

123456789101112md envs# 创建虚拟环境python -m venv env_namecd env_namecd Scripts# 激活环境.\activate# 安装Djangopip install django

设置国内源

12# 清华源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 12# 阿里源pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ 12# 腾讯源pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple 12# 豆瓣源pip config set global.index-url https://pypi.douban.com/simple/ 使用requirement.txt批量安装

pip安装 requirments.txt

1pip install -r ./requirements.txt 对项目生成requirement依赖,以便于其他人对项目的fork

freeze-适用于虚拟环境

12#生成requirement依赖pip freeze > requirements.txt

检查cuda版本(cmd命令)

1nvidia-smi 常用Python代码

python消除警告

12import warningswarnings.filterwarnings("ignore")

plt绘图中文乱码

123plt.rcParams['font.sans-serif'] = ['KaiTi', 'SimHei', 'FangSong'] # 汉字字体,优先使用楷体,如果找不到楷体,则使用黑体plt.rcParams['font.size'] = 12 # 字体大小plt.rcParams['axes.unicode_minus'] = False # 正常显示负号

使用pip安装notebook

1pip install jupyter notebook

更改juypter打开默认位置

1jupyter notebook --generate-config


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3