파이썬 2.7에서 실행되지만 3.5에서는 실행되지 않는 코드가 있는데 이유를 찾을 수 없습니다. 그것은 가져 오기와 관련이 있습니다.파이썬 3으로 이슈 가져 오기
루트 폴더에는 s
이라는 하위 폴더가 있습니다. 루트 폴더에서 스크립트 a.py
을 실행 중이며 줄에는 from s import *
이 포함되어 있습니다. 폴더 s
에서
b.py
라는 파일이 :
from c import c
뿐만 아니라 하위 폴더
s
에 위치한
c.py
에 저장된 클래스를 가져하려고 .
루트 폴더에서 a.py
스크립트를 실행하면 "No module c
"이라고 표시된 ImportError
이 표시됩니다.
파이썬 2.7에서는 문제없이 실행됩니다. 누군가가 문제가 될 수있는 제안을하고 파이썬 3.5에서이 문제를 어떻게 다르게해야할까요?
from .s import *
이 파이썬 2와 파이썬 3.이 모두 작동합니다 : 패키지 내에서
흥미 롭습니다. 설명 된 구성은 Python2에서 ImportError를 던지고 python3에서 나를 위해 모듈 c를 던지거나로드하지도 않습니다. –
http://stackoverflow.com/questions/12172791/changes-in-import-statement-python3을 보았습니까? 관련성이 있습니다 (즉, "Python 3에서 패키지 내의 암시 적 상대 가져 오기를 더 이상 사용할 수 없습니다"). – rkersh
https://docs.python.org/3/whatsnew/2.5.html#pep-328-absolute-and-relative-imports를 참조하십시오. –