使用 pyinstaller 打包 python 程序

最近因为工作需要,所以接触到了这个东西,不过因为自己以前很少写 p y t h o n python python,所以被坑了好久。

首先需要明确说明的是,版本问题, p y t h o n 2 python2 python2 p y t h o n 3 python3 python3 都有自己对应的 p y i n s t a l l e r pyinstaller pyinstaller 版本。

安装 p y t h o n 3 python3 python3 对应的 p y i n s t a l l e r pyinstaller pyinstaller 比较简单,直接通过 p i p pip pip 就行,可能对网络有点小要求:

pip install pyinstaller

至于 p y t h o n 2 python2 python2 的需要找到 p y i n s t a l l e r   2.1 pyinstaller\ 2.1 pyinstaller 2.1 的源码包进行安装( p y i n s t a l l e r 3 pyinstaller3 pyinstaller3 也可以通过源码安装):

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

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

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> 即可打包。

这里 o p t s opts opts 比较常用的是 − F -F F,可以将多个文件打包成单个二进制文件,第一个 s c r i p t n a m e scriptname scriptname 是入口程序,后边可以通过 − p -p p 添加需要打包的 . p y .py .py 文件,通过 − − h i d d e n − i m p o r t --hidden-import hiddenimport 引入自建模块,注意不能打包资源文件,打包成功后会生成 b u i l d build build d i s t dist dist 目录,二进制可执行文件便在 d i s t dist dist 目录下,将资源文件放置在二进制可执行文件同个目录下即可。 p y i n s t a l l e r pyinstaller pyinstaller 工具打包后会生成一个 . s p e c .spec .spec 文件,不加 | &lt;specfile&gt; \text{| &lt;specfile&gt;} | <specfile> 的话默认与入口程序同名。

E x : Ex: Ex:

pyinstaller -F A.py -p b.py -p c.py --hidden-import b --hidden-import c

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值