2016-12-07 64 views
0

我正在尝试使用py2exe来执行脚本。AttributeError:'NoneType'对象没有属性'split'?

这里是我的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' 

而且在我的build文件夹,当我运行Email.exe,我得到这个错误:

ImportError: No module named __startup__ 
+1

我想你也必须提供版本号。它试图分割“x.x.x”类型的字符串,但由于您没有提供它,所以会引发错误。 – MYGz

+0

@amin,这是一个微不足道的编辑。 –

+0

@MohammadYusufGhazi,版本号? –

回答

1

As @Mohammad Yusuf Ghazi说,你需要通过一个version='x.y.z'参数到建立呼叫,e.g:

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")以使其工作,以便可能是是问题。但它有助于看到完整的追溯。