使用pyinstaller封装Python代码

使用pyinstaller封装代码的方法及报错处理,关于pyinstaller的一切都放在这里,有新内容就在这篇添加。html

安装

使用pip安装,会自动下载全部依赖的包python

pip install pyinstaller

也能够去官网下载后进入解压目录python setup.py installweb

pyinstaller依赖pywin32,能够先在shell下import win32com看看是否是已经有了,若是没有可到这里选择合适的版本。shell

打包

  1. 在源代码文件夹上,按住shift右键鼠标,选择“在此处打开命令窗口”

mark

  1. 输入打包命令,最简单的是pyinstaller program_name.py,pyinstaller会检测须要哪些依赖包,并一块儿打包。
C:\Users\Administrator\Desktop\crypto> pyinstaller ginterface.py

注意,只会检测须要安装的那些依赖包,本身敲的模块可不算,因此本身的模块必定要和"program_name.py" 放在一个文件夹,且这个文件夹中要有__init__.py 文件。svg

  1. 打包结束,文件夹中多出很多东西,如图全部不是.py后缀的都是新出现的,不过只有dist文件夹有用,里面有一个叫作ginterface的文件夹,点进去找到.exe文件打开,完美运行。

mark

  1. 把ginterface文件夹打个压缩包,放进U盘。皮皮虾,咱们走!

其余参数

个人打包没什么要求,参数什么的都没用上,其实pyinstaller有很多参数,经常使用的有:.net

-F, –onefile 打包成一个exe文件。code

-D, –onedir 建立一个目录,包含exe文件,但会依赖不少文件(默认选项)。xml

-c, –console, –nowindowed 使用控制台,无界面(默认)htm

-w, –windowed, –noconsole 使用窗口,无控制台blog

-n 给EXE起个名字

-i 给EXE换个图标

具体的最好仍是看看官方文档

报错

failed to create process

两个缘由:

  • python的安装路径有空格,好比咱们常把软件安装在program files这个文件夹下
  • 重命名过Python的安装路径

有空格的问题好解决,在Python文件夹下的Scripts中找到pyinstaller-scripts.py打开,把第一行的路径加上引号,如#!C:\Python34\python.exe改成#!"C:\Python34\python.exe",问题立刻解决。

重命名过且牵扯过多没办法改回原路径名的话,能够看看stackoverflow上的这个问题

pywintypes.error:%1不是标准的win32应用程序

遇到这个问题是由于想给exe文件换个好看点的图标,把图标和代码放在一个文件夹,使用pyinstaller -i picture.ico file.py,每次都会在换图标这一步报错。在网上查才知道须要用ico图标才行,我这种随便一个图改后缀是行不通的,随便下载了一个轻量级转换软件,转换后再打包,就成功了。