Python程序打包—pyinstaller

简介:PyInstaller是一个十分有用的第三方库,通过对源文件打包,Python程序可以在没有安装 Python的环境中运行,也可以作为一个独立文件方便传递和管理。

PyInstaller的官方网站址为http://www.pyinstaller.org/

安装:在命令行使用pip install pyinstaller安装即可。(win+r,输入cmd,打开命令行)

使用:使用 PyInstaller库十分简单,假设python_test在D盘根目录下,则只需在命令行敲入如下指令:

>pyinstaller D:python_test.py

执行完成后,将会生成dist和build两个文件夹。(文件生成位置与cmd起始位置有关)其中 ,build 目录是 pyinstaller存储临时文件的目录,可以安全删除。最终的打包程序在dist内部的python_test文件夹下。目录中其他文件是可执行文件python_test.exe的动态链接库。

常用参数的使用方法如下:

(1)-h

pyinstaller 命令的常用参数使用通过在命令行中输入: >pyinstaller –h即可,截取常用其中一段如下图所示:

 

(2)-i 或者--icon   && -w

例如:--icon参数的使用如下:(指定打包程序使用的图标文件)

>pyinstaller -F --icon="D:a.ico" D:python_test.py

>pyinstaller -F -w -i D: mpmain.ico D:python_test.py

-F 表示生成单个可执行文件,执行后dist目录中出现了python_test.exe文件,没有任何依赖库,执行它即可。
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
-i 表示可执行文件的图标

使用 PyInstaller库需要注意以下问题:

◆ 文件路径中不能出现空格和英文句号(.);

◆ 源文件必须是UTF-8编码,暂不支持其他编码类型。采用IDLE编写的源文件都保存为UTF -8编码形式,可直接使用即可。

使用python3打包时,注意pyinstaller 模块包名称变成PyInstaller

PyInstaller -F xxx.py

相对路径问题:No such file or directory: 'C:Users...AppDataLocalTemp\_MEI***'

使用pyinstaller打包时,如果脚本中相对路径会报错,是因为转换为exe后,只有一个exe文件了,而exe文件执行时,会将资源释放到temp文件夹下再执行,但是原来的数据文件st并没打包和释放,这样就会找不到文件。

简单解决方法:

最后发现比较简单的解决方案只要将python代码中的数据文件拷贝到dist文件夹下,如dist/data/stopwordsFile.txt,在python代码中读取文件时文件路径为stopwordsFile=r"data/stopwordsFile.txt"就可以了。

 可参考:https://blog.csdn.net/pipisorry/article/details/50620495

转自:http://blog.csdn.net/i_chaoren/article/details/56019823

原文地址:https://www.cnblogs.com/who-care/p/8432039.html