我有一个可以在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'])
我该如何解决这个问题?
答案 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文件?