0

我有一个可以在 Python 中正确运行的 Python 程序,但是使用py2exe.

Traceback (most recent call last):
  File "annotate.py", line 229, in <module>
  File "random.pyc", line 274, in choice
IndexError: list index out of range

发生错误的第 229 行如下:

file = random.choice(filenames)

我将 Python 2.7.5 和 py2exe 0.6.9 用于 Python 2.7。编译程序的程序如下(它在 py2exe 网站上的教程中):

from distutils.core import setup
import py2exe

setup(console=['annotate.py'])

我该如何解决这个问题?

4

1 回答 1

1

random.choice()抛出一个IndexError因为filenames是空的:

>>> from random import choice
>>> choice([])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/mj/Development/Libraries/buildout.python/parts/opt/lib/python2.7/random.py", line 274, in choice
    return seq[int(self.random() * len(seq))]  # raises IndexError if seq is empty
IndexError: list index out of range

您需要弄清楚为什么filenamespy2exe. 也许您指望文件系统访问py2exe已压缩到存档以进行分发的 python 文件?

于 2013-07-05T10:14:11.800 回答