Python如何打包为exe文件 |
您所在的位置:网站首页 › exe程序怎么改编写 › Python如何打包为exe文件 |
为什么要打包? 当你想把你做的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依赖,以便于其他人对项目的forkfreeze-适用于虚拟环境 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 |