Python打包-Pyinstaller

  我们知道,Python很优雅,很值得学习。但是Python是解释性语言,代码需要有Python解释器才能执行,相比较我们平时直接运行exe等可执行文件多了一步的麻烦。

  于是,希望能将Python程序打包成exe,使用起来多方便。

  PyInstaller可以将Python程序打包成Windows(当然也包括Linux, Mac OS X, Solaris and AIX)下可执行的EXE文件,目前支持python 2.7 and 3.3—3.6版本。

  官网:http://www.pyinstaller.org/

  使用pip命令安装:pip install PyInstaller(会将依赖Pywin32也安装,方便)

  安装后看下pyinstaller的版本: pyinstaller --version

  

  下面开始使用pyinstaller打包程序:python2.7+pyinstaller3.3

  1、新建py文件: pyInstaller.py

pyInstaller.py


1
2
3
4

5

 
# pyinstaller

# pip install pyinstaller

print "Hello Python!"

msg = input()

  2、执行打包:pyinstaller pyInstaller.py

  常用选项参数:pyinstaller -h 获取详细信息

  -F 表示生成单个可执行文件
  -w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
  -p 表示你自己自定义需要加载的类路径,一般情况下用不到
  -i 表示可执行文件的图标

pyinstaller pyInstaller.py


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
C:\Python27\src>pyinstaller pyInstaller.py

60 INFO: PyInstaller: 3.3.1

60 INFO: Python: 2.7.15

60 INFO: Platform: Windows-7-6.1.7601-SP1

61 INFO: wrote C:\Python27\src\pyInstaller.spec

62 INFO: UPX is not available.

65 INFO: Extending PYTHONPATH with paths

[‘C:\\Python27\\src‘, ‘C:\\Python27\\src‘]

68 INFO: checking Analysis

68 INFO: Building Analysis because out00-Analysis.toc is non existent

69 INFO: Initializing module dependency graph...

71 INFO: Initializing module graph hooks...

156 INFO: running Analysis out00-Analysis.toc

189 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable

required by c:\python27\python.exe

1780 INFO: Found C:\Windows\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1

fc8b3b9a1e18e3b_9.0.30729.1_none_8550c6b5d18a9128.manifest

1782 INFO: Found C:\Windows\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1

fc8b3b9a1e18e3b_9.0.30729.4940_none_f47ed0f6f6564d90.manifest

1791 INFO: Found C:\Windows\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1

fc8b3b9a1e18e3b_9.0.30729.6161_none_f480bfaef65491a5.manifest

1823 INFO: Searching for assembly x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30

729.6161_none ...

1824 INFO: Found manifest C:\Windows\WinSxS\Manifests\x86_microsoft.vc90.crt_1fc

8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57.manifest

1825 INFO: Searching for file msvcr90.dll

1825 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_

9.0.30729.6161_none_50934f2ebcb7eb57\msvcr90.dll

1825 INFO: Searching for file msvcp90.dll

1825 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_

9.0.30729.6161_none_50934f2ebcb7eb57\msvcp90.dll

1825 INFO: Searching for file msvcm90.dll

1827 INFO: Found file C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_

9.0.30729.6161_none_50934f2ebcb7eb57\msvcm90.dll

1856 INFO: Found C:\Windows\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1

fc8b3b9a1e18e3b_9.0.30729.1_none_8550c6b5d18a9128.manifest

1857 INFO: Found C:\Windows\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1

fc8b3b9a1e18e3b_9.0.30729.4940_none_f47ed0f6f6564d90.manifest

1858 INFO: Found C:\Windows\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1

fc8b3b9a1e18e3b_9.0.30729.6161_none_f480bfaef65491a5.manifest

1859 INFO: Adding redirect Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0,

30729, 6161)

2138 INFO: Caching module hooks...

2144 INFO: Analyzing C:\Python27\src\pyInstaller.py

2144 INFO: Loading module hooks...

2146 INFO: Loading module hook "hook-encodings.py"...

5555 INFO: Looking for ctypes DLLs

5555 INFO: Analyzing run-time hooks ...

5561 INFO: Looking for dynamic libraries

5680 INFO: Looking for eggs

5682 INFO: Using Python library C:\Windows\system32\python27.dll

5682 INFO: Found binding redirects:

[BindingRedirect(name=u‘Microsoft.VC90.CRT‘, language=None, arch=u‘x86‘, oldVers

ion=(9, 0, 21022, 8), newVersion=(9, 0, 30729, 6161), publicKeyToken=u‘1fc8b3b9a

1e18e3b‘)]

5685 INFO: Warnings written to C:\Python27\src\build\pyInstaller\warnpyInstaller

.txt

5711 INFO: Graph cross-reference written to C:\Python27\src\build\pyInstaller\xr

ef-pyInstaller.html

5748 INFO: checking PYZ

5748 INFO: Building PYZ because out00-PYZ.toc is non existent

5749 INFO: Building PYZ (ZlibArchive) C:\Python27\src\build\pyInstaller\out00-PY

Z.pyz

5993 INFO: Building PYZ (ZlibArchive) C:\Python27\src\build\pyInstaller\out00-PY

Z.pyz completed successfully.

6028 INFO: checking PKG

6029 INFO: Building PKG because out00-PKG.toc is non existent

6029 INFO: Building PKG (CArchive) out00-PKG.pkg

6048 INFO: Building PKG (CArchive) out00-PKG.pkg completed successfully.

6051 INFO: Bootloader c:\python27\lib\site-packages\PyInstaller\bootloader\Windo

ws-32bit\run.exe

6051 INFO: checking EXE

6051 INFO: Building EXE because out00-EXE.toc is non existent

6052 INFO: Building EXE from out00-EXE.toc

6052 INFO: Appending archive to EXE C:\Python27\src\build\pyInstaller\pyInstalle

r.exe

6054 INFO: Building EXE from out00-EXE.toc completed successfully.

6060 INFO: checking COLLECT

6061 INFO: Building COLLECT because out00-COLLECT.toc is non existent

6063 INFO: Building COLLECT out00-COLLECT.toc

6073 INFO: Redirecting Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 307

29, 6161)

6291 INFO: Redirecting Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 307

29, 6161)

6297 INFO: Updating manifest in C:\Users\Michael\AppData\Roaming\pyinstaller\bin

cache00_py27_32bit\python27.dll

6382 INFO: Updating resource type 24 name 2 language 1033

6572 INFO: Building COLLECT out00-COLLECT.toc completed successfully.

  执行完毕后,会在当前目录的dist 中生成pyInstaller.exe

原文地址:https://www.cnblogs.com/MakeView660/p/9609086.html

时间: 2024-11-09 03:57:28

Python打包-Pyinstaller的相关文章

使用pyinstaller 2.1将python打包并添加版本信息和图标

最近用 wxpython写了一个小的脚本,因为想要发布给没有装python和wxpython的人使用,遂决定使用pyinstaller 2.1进行打包. 其中遇到几个问题: 1,给打包的文件添加图标 查看pyinstaller 的操作手册很容易发现: -i <FILE.ico>, -i <FILE.exe,ID>, --icon=<FILE.ico>, --icon=<FILE.exe,ID>   Add an icon to the output exec

【01】Python打包输出为.exe可执行文件

这是我的第01篇博客 Python打包输出为.exe可执行文件 在完成了之前的爬虫以后,为了给电脑上没有Python环境的朋友玩我的爬虫,开始尝试把爬虫的.py文件输出成.exe可执行文件. 首先,Python的教程上提到了py2exe的模块.但是一波搜索以后发现这个玩意只支持到Python3.4,而我用的是Python3.5.2,这让我很尴尬......于是继续一波搜索,发现了一个叫PyInstaller的模块.这个模块可以完美支持Python3.5,于是怒入. 首先是安装.去sourcefo

PyQt5总结--打包pyinstaller

最近使用PyQt5做一个小程序,程序功能简单;程序做玩后,运行比较卡顿,深觉需要学习的东西还有很多. 觉得python还是做数据处理比较适合.用来做桌面开发或者大程序,就不太适合. 1,PyQt5打包 安装pyinstaller pip install pyinstaller #打包 pyinstaller -i xxx.ico -F xxx.py -w #-w 不带黑窗口 注意:由于程序中使用了pymssq库,所以打包之前,需要在主程序中导入_mssql包;同时还需要导入其他包. import

python打包exe文件-ImportError: No module named &#39;queue&#39;

我之前遇到的一个错误就是 [html] view plain copy File "site-packages\urllib3\packages\six.py", line 92, in __get__ File "site-packages\urllib3\packages\six.py", line 115, in _resolve File "site-packages\urllib3\packages\six.py", line 82, 

python打包成可执行文件

1 最开始我直接把在Windows上打包的run.exe文件上传到Linux以为可以直接用了.但是./run后报错.百度后知道,Windows上的程序不能在Linux上运行 Linux下文件是否可执行可后缀没有关系,只和权限有关系,靠的是文件本身的权限.想要执行就  chmod 755 filename 改变文件权限 windows和linux的二进制文件不能兼容,楼主检查下吧,不能在linux下运行windows的程序.一定要在linux下运行,需要安装wine Linux默认支持ELF格式二

python(11)---pyinstaller

今天就记录一下,pyinstaller的安装,python是可以在命令行下进行运行的,有时候我们需要 将python的源代码进行打包放到不同的平台下进行运行,pyinstaller就是执行此功能的.网上写了 安装过程中碰到的一些问题,我就记录我在安装过程中碰到的一些问题,方便后来的人如果遇到 之后可以少走一些弯路. 我是windows10下进行安装的,首先“Win+R”打开window终端,如果是python2输入: pip2  install --user pyinstaller:如果是pyt

[转]Python打包工具

作者:Tarek Ziadé,翻译:张吉 原文:http://www.aosabook.org/en/packaging.html 转载地址:http://www.ituring.com.cn/article/19090 14.1 简介 对于如何安装软件,目前有两种思想流派.第一种是说软件应该自给自足,不依赖于其它任何部件,这点在Windows和Mac OS X系统中很流行.这种方式简化了软件的管理:每个软件都有自己独立的“领域”,安装和卸载它们不会对操作系统产生影响.如果软件依赖一项不常见的类

Python打包成exe

有个好网站http://www.lfd.uci.edu/~gohlke/pythonlibs/ , 这个网站可以下载许多非官方的python库的安装包. 1.首先去这个网站下载cx_freeze安装包后安装. 2.在C:\PythonXX\Scripts\ 下可以看到cxfreeze-quickstart.bat, XX为版本号 3.运行cxfreeze-quickstart.bat, 根据向导生成setup.py setup.py类似如下: importsys fromcx_Freeze im

Python 打包和发布方法汇总

以下主要Python打包汇总,作为学习备份: 一.使用python内部基础工具包Distutils打包程序 1. 在打包之前需要做的就是配置好安装脚本,一般为setup.py文件: 示例(setup.py): from distutils.core import setup setup(name='Hello', version='1.0', description='example', author='haomiao', py_modules=['hello']) 该配置文件,只使用了py_m