<질문>
Python 프로그램을 실행할 때 오류가 발생합니다.
Traceback (most recent call last):
File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 110, in
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
게임은here.
이 오류의 원인은 무엇입니까?
<답변1>
Python 3으로 Python 2 코드베이스를 실행하려고 합니다.xrange()
로 이름이 변경되었습니다range()
파이썬 3에서.
대신 Python 2로 게임을 실행하십시오. 당신이 무엇을 하고 있는지 알지 못한다면 포팅을 시도하지 마세요.xrange()
대range()
.
참고로 지금 보고 있는 것은 구문 오류가 아니라 런타임 예외입니다.
수행 중인 작업을 알고 Python 3과 호환되는 Python 2 코드베이스를 적극적으로 만들고 있는 경우 전역 이름을 모듈에 대한 별칭으로 추가하여 코드를 연결할 수 있습니다.range
. (당신이5월기존 업데이트를 해야 합니다range()
다음과 함께 Python 2 코드베이스에서 사용list(range(...))
Python 3에서 여전히 목록 객체를 얻을 수 있도록 하기 위해):
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(...)
코드베이스에서 다른 shim을 사용하여 Python 3 구문이 Python 2와 호환되도록 합니다.
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 구문을 사용하는 것이 더 쉽습니다.
<답변2>
추가하다xrange=range
귀하의 코드에서 :) 그것은 나에게 작동합니다.
<답변3>
이 가져오기를 추가하여 문제를 해결했습니다.
더info
from past.builtins import xrange
<답변4>
파이썬 2.x에서,엑스레인지동안 발전기를 반환하는 데 사용됩니다.범위목록을 반환하는 데 사용됩니다. 파이썬 3.x에서,엑스레인지제거되었으며범위다음과 같이 생성기를 반환합니다.엑스레인지파이썬 2.x에서. 따라서 Python 3.x에서는 xrange가 아닌 범위를 사용해야 합니다.
<답변5>
바꾸다
파이썬 2xrange
에게
파이썬 3range
모두 똑같이 쉬십시오.
<답변6>
마지막 답변에 동의합니다. 하지만 이 문제를 해결할 수 있는 다른 방법이 있습니다. pip install future와 같은 future라는 패키지를 다운로드할 수 있습니다. 그리고 .py 파일에 "from past.builtins import xrange"를 입력합니다. 이 방법은 파일에 많은 xrange가 있는 상황입니다.
'개발 > Python' 카테고리의 다른 글
[파이썬] URL 매개변수에서 퍼센트 인코딩 하는 방법? (0) | 2023.01.21 |
---|---|
[파이썬] 버전 번호를 비교하는 방법 (0) | 2023.01.21 |
[파이썬] 딕셔너리에서 선언된 것과 같은 순서로 유지하는 방법? (0) | 2023.01.20 |
[파이썬] 변수가 배열인지 스칼라인지 식별하는 방법 (0) | 2023.01.20 |