前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 pyinstaller 打包 python 程序

使用 pyinstaller 打包 python 程序

作者头像
f_zyj
发布2019-05-27 09:02:55
8400
发布2019-05-27 09:02:55
举报
文章被收录于专栏:ACM小冰成长之路

首先需要明确说明的是,版本问题,python2python2python2 与 python3python3python3 都有自己对应的 pyinstallerpyinstallerpyinstaller 版本。

安装 python3python3python3 对应的 pyinstallerpyinstallerpyinstaller 比较简单,直接通过 pippippip 就行,可能对网络有点小要求:

代码语言:javascript
复制
pip install pyinstaller

至于 python2python2python2 的需要找到 pyinstaller 2.1pyinstaller\ 2.1pyinstaller 2.1 的源码包进行安装(pyinstaller3pyinstaller3pyinstaller3 也可以通过源码安装):

代码语言:javascript
复制
wget https://pypi.python.org/packages/source/P/PyInstaller/PyInstaller-2.1.zip#md5=3eb18a454311707ab7808d881e677329
tar -zxv PyInstaller-2.1.zip
cd Pyinstaller-2.1/Pyinstaller-2.1
python setup.py build
python setup.py install

安装之后,并不能直接打包,需要在源码中导入几个模块,否则可能会报错:

代码语言:javascript
复制
import six
import packaging
import packaging.version
import packaging.specifiers
import packaging.requirements

然后通过命令 pyinstaller [opts] &lt;scriptname&gt; [ &lt;scriptname&gt; ...] | &lt;specfile&gt;\text{pyinstaller [opts] &lt;scriptname&gt; [ &lt;scriptname&gt; ...] | &lt;specfile&gt;}pyinstaller [opts] <scriptname> [ <scriptname> ...] | <specfile> 即可打包。

这里 optsoptsopts 比较常用的是 −F-F−F,可以将多个文件打包成单个二进制文件,第一个 scriptnamescriptnamescriptname 是入口程序,后边可以通过 −p-p−p 添加需要打包的 .py.py.py 文件,通过 −−hidden−import--hidden-import−−hidden−import 引入自建模块,注意不能打包资源文件,打包成功后会生成 buildbuildbuild 与 distdistdist 目录,二进制可执行文件便在 distdistdist 目录下,将资源文件放置在二进制可执行文件同个目录下即可。pyinstallerpyinstallerpyinstaller 工具打包后会生成一个 .spec.spec.spec 文件,不加 | &lt;specfile&gt;\text{| &lt;specfile&gt;}| <specfile> 的话默认与入口程序同名。

Ex:Ex:Ex:

代码语言:javascript
复制
pyinstaller -F A.py -p b.py -p c.py --hidden-import b --hidden-import c

这里最后会生成一个 dist/Adist/Adist/A 的二进制可执行文件,将资源文件都移动过来以后,双击可直接运行。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年01月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档