AttributeError:'NoneType'对象没有属性'split'?

时间:2016-12-07 08:08:29

标签: python python-2.7 cx-freeze attributeerror

我正在尝试使用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__

1 个答案:

答案 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")才能使其正常工作,以便可能成为问题。但这将有助于看到完整的追溯。