运行python程序时出现错误:
Traceback (most recent call last): File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 110, in <module> File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 27, in __init__ File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\class\inventory.py", line 17, in __init__ builtins.NameError: global name 'xrange' is not defined
游戏从这里开始。
是什么导致此错误?
您正在尝试使用Python 3运行Python 2代码库。在Python 3中xrange()已重命名为range()。
xrange()
range()
而是使用Python 2运行游戏。不要试图将它移植,除非你知道自己在做什么,很可能会出现超越更多的问题xrange()与range()。
作为记录,您看到的不是语法错误,而是运行时异常。
如果您确实知道自己在做什么,并且正在积极地使Python 2代码库与Python 3兼容,则可以通过将全局名称添加为模块的别名来桥接代码range。(请注意,您 可能 必须更新range()Python 2代码库中的所有现有用法,list(range(...))以确保仍然在Python 3中获得列表对象):
range
list(range(...))
try: # Python 2 xrange except NameError: # Python 3, xrange is now named range xrange = range # Python 2 code that uses xrange(...) unchanged, and any # range(...) replaced with list(range(...))
或更换的所有用途xrange(...)与range(...)在代码库,然后使用不同的垫片,使与Python 2的Python语法3兼容:
xrange(...)
range(...)
try: # Python 2 forward compatibility range = xrange except NameError: pass # Python 2 code transformed from range(...) -> list(range(...)) and # xrange(...) -> range(...).
后者是最好的希望的目标是Python 3的兼容代码库 只有 从长远来看,它更容易然后只需使用Python 3语法,只要有可能。