Pyinstaller打包.py生成.exe的方法和报错总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Pyinstaller打包.py⽣成.exe的⽅法和报错总结
Pyinstaller 打包.py⽣成.exe的⽅法和报错总结
简介
有时候⾃⼰写了个python脚本觉得挺好⽤想要分享给⼩伙伴,但是每次都要帮他们的电脑装个python环境。

虽然说装⼀下也快,但是相对来说效率还是不⾼,要是能将python的**.py⽂件转化为.exe**,那么世界将变得更美好。

这篇⽂章我将简单的介绍如何使⽤Pyinstaller来打包我们的python脚本。

安装 Pyinstaller
如果有什么问题⼀般都能够在这⾥找到解答。

安装 pyinstaller还是⾮常的⽅便的,只需要⼀句话:
pip install pyinstaller
就OK了
打包 Python脚本
关于打包其实也很简单,也只需要⼀句话:
pyinstaller yourprogram.py
当然pyinstaller命令的语法是:
pyinstaller [options] script [script ...] | spec⽂件
在运⾏ pyinstaller命令后在yourprogram.py同⼀个⽬录下会产⽣⼀个⽂件两个⽂件夹:
1. yourprogram.spec⽂件,该⽂件中写了⼀些配置,可以打开进⾏修改,下⼀次可以直接打包该⽂件,不⽤打包
yourprogram.py了。

2. build⽂件夹,包含⼀些⽇志⽂件和⼯作⽂件
3. dist⽂件夹,包含可执⾏⽂件
1. 控制台窗⼝选项
-c, --console, --nowindowed 打包程序运⾏时,打开标准i / o控制台窗⼝(默认)
-w, --windowed, --noconsole 打包程序运⾏时,不打开标准i / o控制台窗⼝(默认)
2. 软件图标选项
-i FILE.ico , --icon FILE.ico 为你的程序添加⼀个图标
3. 版本信息选项
--version-file FILE.txt 可以将您的版本信息添加到你的软件当中
这个FILE.txt的⽂件内容为:
# UTF-8
#
VSVersionInfo(
ffi=FixedFileInfo(
# filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
# Set not needed items to zero 0.
filevers=(10, 0, 17134, 1),
prodvers=(10, 0, 17134, 1),
# Contains a bitmask that specifies the valid bits 'flags'r
mask=0x3f,
# Contains a bitmask that specifies the Boolean attributes of the file.
flags=0x0,
# The operating system for which this file was designed.
# 0x4 - NT and there is no need to change it.
OS=0x40004,
# The general type of file.
# 0x1 - the file is an application.
fileType=0x1,
# The function of the file.
# 0x0 - the function is not defined for this fileType
subtype=0x0,
# Creation date and time stamp.
date=(0, 0)
),
kids=[
StringFileInfo(
[
StringTable(
u'040904B0',
[StringStruct(u'CompanyName', u'Microsoft Corporation'),
StringStruct(u'FileDescription', u'Windows Command Processor'),
StringStruct(u'FileVersion', u'10.0.17134.1 (WinBuild.160101.0800)'),
StringStruct(u'InternalName', u'cmd'),
StringStruct(u'LegalCopyright', u'© Microsoft Corporation. All rights reserved.'),
StringStruct(u'OriginalFilename', u'Cmd.Exe'),
StringStruct(u'ProductName', u'Microsoft® Windows® Operating System'),
StringStruct(u'ProductVersion', u'10.0.17134.1')])
]),
VarFileInfo([VarStruct(u'Translation', [1033, 1200])])
]
)
4. ⽣成结果选项
-D,--onedir 这会创建⼀个包含可执⾏⽂件的单⽂件夹包(默认)
-F,--onefile 这个只会创建⼀个可执⾏⽂件
--specpath DIR ⽤于存储⽣成的spec⽂件的⽂件夹(默认值:当前⽬录)
-n NAME, --name NAME 应⽤程序的名称(默认值:第⼀个脚本的名称)
以上四个就是常⽤的参数,可以根据⾃⼰的需求进⾏设置。

例⼦
下⾯这个是我打包⼀个“⾃动更新桌⾯的脚本”的命令:
G:\PyinstallerTest\Auto_Wallpaper>pyinstaller -F -i G:\PyinstallerTest\Auto_Wallpaper\icon\moon.ico --version-file=version.txt Auto_Wallpaper_of_Moon.py 执⾏后就能够成功的将**.py脚本转化为.exe**可执⾏⽂件。

错误总结
在这⾥我会总结我在使⽤pyinstaller过程中出现的错误和解决⽅法
1. AttributeError: ‘str' object has no attribute ‘items'
错误内容截取:
for real_module_name, six_module_name in real_to_six_module_name.items():
AttributeError: 'str' object has no attribute 'items'
解决⽅法:
你需要更新⼀下你的setuptools
pip install --upgrade setuptools
2. 打包后运⾏.exe程序调试闪退
有时候将.py⽂件打包成.exe⽂件后,不⼀定能够正常运⾏。

但是点.exe后程序⼀闪⽽退,就不知道问题出在哪⾥。

解决⽅法:
在cmd⾏⾥⾯运⾏你的.exe⽂件
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。

如果你想了解更多相关内容请查看下⾯相关链接。

相关文档
最新文档