Python:使用py2exe编译后随机错误

时间:2013-07-05 10:09:12

标签: python random compilation py2exe

我有一个可以在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中使用Python 2.7.5和py2exe 0.6.9。 编译程序的程序如下(并且它在py2exe网站的教程中):

from distutils.core import setup
import py2exe

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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

filenames下运行时,您需要弄清楚为什么py2exe为空。也许您指望文件系统访问py2exe已压缩到存档中以便分发的python文件?