pyinstaller打包python

有一个很好用,而且免费的工具pyinstaller,支持windows, linux, mac os, 并且支持32bit, 64bit。

官网地址:

http://www.pyinstaller.org/

在windows下面,这个工具依赖pywin32,所以使用这个工具之前需要先行安装pywin32。如果是在linux或者macos下面就不需要了。

可以从下面的连接下载:

http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/

pywin32是python package,所以需要安装到site-packages这个文件中。

安装完成之后,我们下载pyinstaller,这是个压缩文件,下载连接:

https://github.com/downloads/pyinstaller/pyinstaller/pyinstaller-2.0.zip

因为这不是python package,所以不需要安装,直接解压的任何目录就可以工作了。解压之后需要配置pyinstaller,cd到你解压的文件夹,然后运行这个命令:

python Configure.py

其实就是写config.dat这个文件。

这个命令一般只需要执行一次,每次打包的时候不需要执行它。

更详细的资料请参考

http://www.pyinstaller.org/export/d3398dd79b68901ae1edd761f3fe0f4ff19cfb1a/project/doc/Manual.html

2个命令完成一个简单的打包:

python Makespec.py [--onefile] yourprogram.py
python Build.py specfile

第一个命令是根据你提供的选项来生成一个工程的表述文件,包括编译选项,非常想Makefile文件,这里的–onefile就是告诉pyinstaller,我们想最终生成一个exe文件(windows 下面)。specfile就是第一条命令生成spec文件,这里需要指定全路径。

pyinstaller还提供其他的一些选项:

-F,
--onefile
produce a single file deployment (see below).
-D,
--onedir
produce a single directory deployment (default).
-K,
--tk
include TCL/TK in the deployment.
-a,
--ascii
do not include encodings. The default (on Python versions with unicodesupport) is now to include all encodings.
-d,
--debug
use debug (verbose) versions of the executables.
-w,
--windowed
, --noconsole
  Use the Windows subsystem executable, which does not openthe console when the program is launched.(Windows only)
-c,
--nowindowed
, --console
  Use the console subsystem executable. This is the default. (Windows only)
-s,
--strip
the executable and all shared libraries will be run through strip. Notethat cygwin’s strip tends to render normal Win32 dlls unusable.
-X,
--upx
if you have UPX installed (detected by Configure), this will use it tocompress your executable (and, on Windows, your dlls). See note below.
-o DIR,--out=DIR
  create the spec file in directory. If not specified, and the currentdirectory is Installer’s root directory, an output subdirectory will becreated. Otherwise the current directory is used.
-p DIR,--paths=DIR
  set base path for import (like using PYTHONPATH). Multiple directories areallowed, separating them with the path separator (‘;’ under Windows, ‘:’under Linux), or using this option multiple times.
--icon=<FILE.ICO>
  add file.ico to the executable’s resources. (Windows only)
--icon=<FILE.EXE,N>
  add the n-th incon in file.exe to the executable’s resources.(Windowsonly)
-v FILE,--version=FILE
  add verfile as a version resource to the executable. (Windows only)
-n NAME,--name=NAME
  optional name to assign to the project (from which the spec file name isgenerated). If omitted, the basename of the (first) script is used.

第二条命令就是根据刚才的生成工程描述文件,生成最终可执行程序。从某种角度来说,和gcc的编译非常像,第一条命令像是在 configure,第二个命令 像是 make。

第二条命令可以带 -O选项(大写的O),来打开优化选项,进行编译打包。

python -O Build.py specfile

但是会提示你出错,那是因为我们在配置pyinstaller时,没有指定打开优化选项,所以我们配置命令变成:

python -O configure.py

你只需要输入你的程序入点文件,其他pyinstaller会帮你找。这里说入点文件就是你的python工程第一个要执行的文件,就像c/c++工程中含有main函数的文件。在上面的例子中就是

yourprogam.py

这个工具会把所有的依赖的包给你打进去,包括python解释器,因此打成包,可以在没有安装python解释器的环境中运行。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *