PyInstaller基本用法

 PyInstaller可以将Python程序打包为一个独立的可执行程序,适用于Windows、Linux与Mac OS X等。本文简述PyInstaller的安装与基本使用方法。

 Python用于开发一些小程序非常方便,但是使用的话一般需要安装开发环境。通过PyInstaller可以将Python程序转化为一个可执行文件,例如可以在Windows下直接执行的exe文件。

开发环境

 本文中开发环境如下:

  • 操作系统:Windows 10 Home x64
  • Python版本:2.7.13 x64

PyInstaller的安装

安装PyInstaller

1
pip install pyinstaller

更新PyInstaller

1
pip install --upgrade pyinstaller

安装当前开发者版本

1
pip install https://github.com/pyinstaller/pyinstaller/tarball/develop

PyInstaller的使用

 PyInstaller命令的语法如下所示:

1
pyinstaller [options] script [script …] | specfile

 关于该语法的详细介绍见官网。这里只列举出一些相对常用的用法。

option选项

 option中可以设置的参数较多,常用的列举如下。

Parameter Function 备注
-D, –onedir Create a one-folder bundle containing an executable (default) 生成一个包含程序的文件夹
-F, –onefile Create a one-file bundled executable. 生成一个独立程序
p DIR, –paths DIR A path to search for imports (like using PYTHONPATH). Multiple paths are allowed, separated by ‘:’, or use this option multiple times 设置import文件路径
c, –console, –nowindowed Open a console window for standard i/o (default) 使用控制台程序
-w, –windowed, –noconsole Windows and Mac OS X: do not provide a console window for standard i/o. On Mac OS X this also triggers building an OS X .app bundle. This option is ignored in *NIX systems. 使用非控制台程序
-i , –icon FILE.ico: apply that icon to a Windows executable. FILE.exe,ID, extract the icon with ID from an exe. FILE.icns: apply the icon to the .app bundle on Mac OS X 设置程序的icon
-n NAME, –name NAME Name to assign to the bundled app and spec file (default: first script’s basename) 命名生成的程序

 使用一个简单的获取系统时间然后打印的程序,代码如下。

1
2
3
4
5
6
7
8
#coding:UTF-8
from datetime import datetime
import time
def timer(n):
while True:
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
time.sleep(n)
timer(1)

 对PyInstaller的使用举例如下:

生成独立exe文件

 首先将在CMD命令框定位到程序所在路径,输入如下命令即可:

1
2
cd -d D:\python
pyinstaller -F timer.py

 之后在该目录下dist文件夹下可以看到timer.exe文件,点击执行,会发现与运行python程序效果一致。

增加程序icon

 命令修改如下:

1
pyinstaller -F -i D:\python\qq.ico timer.py

 之后在该目录下dist文件夹下可以看到timer.exe文件,此时程序使用了icon。

禁用控制台

 对于窗体程序,可以禁用控制台。举例一个小程序:使用graphics绘制一个圆,鼠标点击后消失,同时在程序运行中输出一个start字符串。

1
2
3
4
5
6
7
8
9
10
11
12
13
from graphics import *
win = GraphWin('shape')
print ("start")
center = Point(100,100)
circ = Circle(center,30)
circ.setFill('blue')
circ.draw(win)
win.getMouse()
win.close()

 当程序直接通过python运行时,将输出start并画圆。

 使用如下命令生成exe文件禁用控制台,则程序仅仅进行画圆。

1
pyinstaller -F -w -i D:\python\qq.ico graph_1.py

 PyInstaller的基本使用介绍完毕。😄

文章目录
  1. 1. 开发环境
  2. 2. PyInstaller的安装
    1. 2.1. 安装PyInstaller
    2. 2.2. 更新PyInstaller
    3. 2.3. 安装当前开发者版本
  3. 3. PyInstaller的使用
    1. 3.1. option选项
      1. 3.1.1. 生成独立exe文件
      2. 3.1.2. 增加程序icon
      3. 3.1.3. 禁用控制台
|