我正在尝试使用py2exe
生成脚本。
这是我的setup.py
代码:
import cx_Freeze
executables = [cx_Freeze.Executable("Email.py")]
cx_Freeze.setup(
name="Email",
options={"build_exe": {"packages":["pygame"],
"include_files":["aura.png"]}},
executables = executables
)
我从我的cmd运行它,这是执行:
G:\Grade 12 Project>python setup.py build running build running build_exe creating directory build\exe.win32-2.7 copying C:\Python27\lib\site-packages\cx_Freeze\bases\Console.exe -> build\exe.win32-2.7\Email.exe copying C:\WINDOWS\SYSTEM32\python27.dll
-> build\exe.win32-2.7\python27.dll Traceback (most recent call last): File "setup.py", line 9, in <module>
executables = executables File "C:\Python27\lib\site-packages\cx_Freeze\dist.py", line 349, in setup
distutils.core.setup(**attrs) File "C:\Python27\lib\distutils\core.py", line 151, in setup
dist.run_commands() File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd) File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run() File "C:\Python27\lib\distutils\command\build.py", line 127, in run
self.run_command(cmd_name) File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command) File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run() File "C:\Python27\lib\site-packages\cx_Freeze\dist.py", line 219, in run
freezer.Freeze() File "C:\Python27\lib\site-packages\cx_Freeze\freezer.py", line 623, in Freeze
self._FreezeExecutable(executable) File "C:\Python27\lib\site-packages\cx_Freeze\freezer.py", line 225, in
_FreezeExecutable
self._AddVersionResource(exe) File "C:\Python27\lib\site-packages\cx_Freeze\freezer.py", line 165, in
_AddVersionResource
trademarks = exe.trademarks) File "C:\Python27\lib\site-packages\cx_Freeze\freezer.py", line 759, in
__init__
parts = version.split(".") AttributeError: 'NoneType' object has no attribute 'split'
同样在我的构建文件夹中,当我运行Email.exe
时,我收到此错误:
ImportError: No module named __startup__
答案 0 :(得分:1)
正如@Mohammad Yusuf Ghazi所说,您需要将version='x.y.z'
参数传递给设置调用,例如:
cx_Freeze.setup(
name="Email",
options={
"build_exe": {"packages":["pygame"],
"include_files":["aura.png"]}},
executables = executables,
version='1.0.0'
)
如果没有版本号,请拨打setup
无效。
您是尝试从命令行还是从GUI运行它?如果来自GUI,您可能需要按the docs调用Executable("Email.py", base="Win32GUI")
才能使其正常工作,以便可能成为问题。但这将有助于看到完整的追溯。