python开发者向普通windows用户分享程序,要给程序加图形化的界面(传送门:这可能是最好玩的python GUI入门实例! http://www.jianshu.com/p/8abcf73adba3),并要将软件打包为可执行文件(.exe结尾),那如何将.py转为.exe ?
将.py转为.exe
pip install pyinstaller -i https://pypi.douban.com/simple
由于windows默认编码是gbk,而我们的开发环境(unix环境)默认编码使用utf-8,为解决编码问题,我们需要对pyinstaller源码进行一些修改
修改读取方式为:utf-8
将
pyinstaller中winmainifest.py中的第1075行,修改为
with open(filename,encoding="UTF-8") as f:
winmainifest.py
的位置:C:\Program Files (x86)\Python36-32\Lib\site-packages\PyInstaller\utils\win32\winmanifest.py
,如果找不到,可以先尝试第三步,如果转换过程报错,会打印出这个文件在本机的位置. 如果权限不够,无法保存修改,可以先将修改后的文件,保存到桌面(保持原来的文件名),用桌面的文件替换原目录中的文件即可!
> 这里以`Python GUI入门实例`为例(Python GUI入门实例传送门:http://www.jianshu.com/p/8abcf73adba3)
命令:pyinstaller --onefile 011根据ip查询地理位置.py
创建打包为.exe文件
编译后的目录
生成的.exe文件在dist文件夹内
将数据库文件GeoLiteCity.dat拷贝到dist文件夹中
完整的程序
运行可执行文件(.exe)
以管理员身份运行
成功运行效果