Python脚本打包为exe文件
本文转载自http://www.open-open.com/lib/view/open1342675735745.html
把用Python写好的脚本,可以用pyinstaller打包成.exe文件,方便发布,在其他电脑上脱离python语言环境而运行。
1、要求:
1、要求:
python3.5及以下版本,暂时不支持3.6版本。
我电脑python是3.5版本
我电脑安装的pyinstaller是3.2.1
2、打包 (以NIPT_analysis.py 为例)
a、去除代码中所有中文字符,包括注释。(指定编码的注释可以不去掉没有关系)
b、 如果用到非官方的库,可能pyinstaller找不到该库,因此需要根据情况修改。
b、 如果用到非官方的库,可能pyinstaller找不到该库,因此需要根据情况修改。
命令行:
注意:
(1)所有.py文件都不能有中文字符,否则会出现编码异常。
(2)执行上述命令后,在会生成dist目录,里面就有打包后的可执行文件。
(3)启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果。(来源网络)
if __name__ == "__main__":
main()
(3)启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果。(来源网络)
if __name__ == "__main__":
main()
(4)文件内容不能有中文,即使是注释中也不能有,否则出现如下错误。 (原自网络)
codeString = fp.read()
File "C:\Python31\lib\codecs.py", line 300, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 557-558: invalid
data
尝试把编码由cp936改为utf-8,也不可以,把文件中ASCII另存为UTF-8,也不行,有如下错误:
File "BlogConfig.py", line 1
\ufeff#!/usr/bin/python
^
SyntaxError: invalid character in identifier
(5)有些三方模块,比如我的statsmodels 在pyinstaller中找不着,需要做如下修改:
codeString = fp.read()
File "C:\Python31\lib\codecs.py", line 300, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 557-558: invalid
data
尝试把编码由cp936改为utf-8,也不可以,把文件中ASCII另存为UTF-8,也不行,有如下错误:
File "BlogConfig.py", line 1
\ufeff#!/usr/bin/python
^
SyntaxError: invalid character in identifier
(5)有些三方模块,比如我的statsmodels 在pyinstaller中找不着,需要做如下修改:
最后终于成功!!!在dist目录生成单一的NIPT_Analysis.exe文件,这个文件是可执行的。