2017-06-09 33 views
2

我试图将Python程序转换为可执行文件,使用py2exe,在tutorial flow之后。我创建了一个setup.py,如下所示(使用this示例)。使用py2exe转换程序和传递选项时的RuntimeError

from distutils.core import setup 
    import py2exe 

    options = { 
     'py2exe': { 
      'compressed': 1, 
      'optimize': 2, 
      'bundle_files': 3, #Options 1 & 2 do not work on a 64bit system 
      'dist_dir': 'dist', # Put .exe in dist/ 
      'xref': False, 
      'skip_archive': False, 
      'ascii': False}} 

    setup(options=options, zipfile=None, console=['main.py']) 

当我在蟒蛇命令提示符(设置为运行一个Python 3.5的环境)中运行python setup.py py2exe,我碰到下面的错误跟踪:

running py2exe 
    Traceback (most recent call last): 
     File "setup.py", line 14, in <module> 
     }, zipfile=None, console=['main.py']) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\distutils\core.py", line 148, in setup 
     dist.run_commands() 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\distutils\dist.py", line 955, in run_commands 
     self.run_command(cmd) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\distutils\dist.py", line 974, in run_command 
     cmd_obj.run() 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\distutils_buildexe.py", line 188, in run 
     self._run() 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\distutils_buildexe.py", line 267, in _run 
     builder.analyze() 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\runtime.py", line 173, in analyze 
     target.analyze(mf) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\runtime.py", line 74, in analyze 
     modulefinder.run_script(self.script) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 86, in run_script 
     self._scan_code(mod.__code__, mod) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 394, in _scan_code 
     self.safe_import_hook(name, mod, fromlist, level) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 138, in safe_import_hook 
     self.import_hook(name, caller, fromlist, level) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 120, in import_hook 
     module = self._gcd_import(name) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import 
     return self._find_and_load(name) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 357, in _find_and_load 
     self._scan_code(module.__code__, module) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 394, in _scan_code 
     self.safe_import_hook(name, mod, fromlist, level) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 138, in safe_import_hook 
     self.import_hook(name, caller, fromlist, level) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 120, in import_hook 
     module = self._gcd_import(name) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import 
     return self._find_and_load(name) 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 356, in _find_and_load 
     if module.__code__: 
     File "C:\Users\<username>\AppData\Local\conda\conda\envs\py35_env\lib\site-packages\py2exe\mf3.py", line 637, in __code__ 
     raise RuntimeError("should read __file__ to get the source???") 
    RuntimeError: should read __file__ to get the source??? 

我尝试以下回溯,但没有能够找出错误的根源。关于我的问题是什么以及如何解决它的任何建议?

回答

0

看来我的错误与py2x的py2exe中缺少支持有关。当我运行在我的问题中链接的教程中列出的教程示例(hello world)时,我遇到了类似的错误(虽然不完全相同),这是我如何确定问题的。

我使用python 3.4解释器创建了一个新的Anaconda环境,并且能够成功地为我的原始应用程序构建可执行文件。

相关问题