이미이 질문과 유사한 질문이 많이 있지만 불행히도 내 문제에 어떻게 적용하는지 알지 못했습니다.Python : SystemError 상위 모듈이로드되지 않았으며 상대 가져 오기를 수행 할 수 없습니다.
다음과 같이 내 프로젝트의 구조는 다음과 같습니다 train.py
에서 다음
Project
|___ maincode
|___ __init__.py
|___ losses.py
|___ bin
|___ __init__.py
|___ train.py
와 나는 다음과 같은 코드를 가지고 : 나는이 프로젝트의 주요 디렉토리 Project/
에서 스크립트 train.py
를 실행하면 이제
# Allow relative imports when being executed as script.
if __name__ == "__main__" and __package__ is None:
__package__ = "maincode.bin"
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
from .. import losses
def main(args=None):
#some code here
if __name__ == '__main__':
main()
을 즉, 터미널에서 다음을 실행하십시오.
maincode/bin/train.py
후 나는 다음과 같은 오류를 얻을 :
SystemError: Parent module 'maincode.bin' not loaded, cannot perform relative import
는 파이썬 2.7.6 파이썬 3.5.2와 함께 모두 시도와 같은 오류를 얻을.
도와 주시겠습니까? 미리 감사드립니다.
방금 실행 train.py 또는 전체 응용 프로그램 하시겠습니까? – edlee
@edlee 메인 코드는'train.py'에 있습니다.이 코드는 나머지 프로젝트에 따라 달라 지므로 전체 응용 프로그램을 실행해야합니까? – Khue
무엇 - 문서가 효과가 있어야한다고 말합니다. 왜 그런지 모르겠다. – user2357112