【发布时间】:2017-05-25 12:45:29
【问题描述】:
我目前正在尝试使用 py2exe 制作可执行文件。我使用 Python 3.6。我正在使用的脚本导入 openpyxl 和 pptx 并且在我使用 Pycharm 或使用命令窗口运行脚本时运行良好。
输出产生错误:
IndexError: tuple index out of range
您可以在下面找到cmd 输出:
C:\Python36>python setup.py py2exe
running py2exe
Traceback (most recent call last):
File "setup.py", line 4, in <module>
setup(console=['Storybookmaker.py'])
File "C:\Python36\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Python36\lib\distutils\dist.py", line 955, in run_commands
self.run_command(cmd)
File "C:\Python36\lib\distutils\dist.py", line 974, in run_command
cmd_obj.run()
File "C:\Python36\lib\site-packages\py2exe\distutils_buildexe.py", line 188, in run
self._run()
File "C:\Python36\lib\site-packages\py2exe\distutils_buildexe.py", line 267, in _run
builder.analyze()
File "C:\Python36\lib\site-packages\py2exe\runtime.py", line 160, in analyze
self.mf.import_hook(modname)
File "C:\Python36\lib\site-packages\py2exe\mf3.py", line 120, in import_hook
module = self._gcd_import(name)
File "C:\Python36\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import
return self._find_and_load(name)
File "C:\Python36\lib\site-packages\py2exe\mf3.py", line 357, in _find_and_load
self._scan_code(module.__code__, module)
File "C:\Python36\lib\site-packages\py2exe\mf3.py", line 388, in _scan_code
for what, args in self._scan_opcodes(code):
File "C:\Python36\lib\site-packages\py2exe\mf3.py", line 417, in _scan_opcodes
yield "store", (names[oparg],)
IndexError: tuple index out of range
C:\Python36>
IndexError 的原因是什么?
编辑:这是setup.py 文件:
from distutils.core import setup
import py2exe
setup(console=['Storybookmaker.py'])
【问题讨论】:
-
你能给我们看看你的
setup.py文件吗?因为问题在那里,而不是在py2exe中,它工作正常。 -
您好 Jean-Francois,我已在原始帖子中添加了文件。提前致谢!
-
Storybookmaker.py文件是否与setup.py在同一目录中?您可以尝试setup(console=[os.path.join(os.path.dirname(__file__,'Storybookmaker.py')])以确保找到该文件。 -
@Jean-FrancoisFabre setup.py 和 Storybookmaker.py 都在 C:\Python36 文件夹中,所以这无关紧要,但我还是用你的代码试过了。它得到相同的 IndexError。还有其他想法吗?
-
@Dennis:
py2exe回来了。查看我更新的答案(如果它解决了您的问题,请检查一下)。