UFO ET IT

상위 디렉토리에서 스크립트 가져 오기

ufoet 2020. 11. 11. 21:00
반응형

상위 디렉토리에서 스크립트 가져 오기


부모 디렉터리에있는 모듈 (python 파일)을 어떻게 가져 옵니까?

두 디렉토리 모두에 __init__.py파일이 있지만 여전히 상위 디렉토리에서 파일을 가져올 수 없습니까?

이 폴더 레이아웃에서 스크립트 B는 스크립트 A를 가져 오려고합니다.

Folder A:
   __init__.py
   Script A:
   Folder B:
     __init__.py
     Script B(attempting to import Script A)

스크립트 B의 다음 코드는 작동하지 않습니다.

import ../scriptA.py # I get a compile error saying the "." is invalid

모듈을 가져 오는 Python에서 스크립트를 가져 오지 않습니다. 일부 파이썬 모듈은 직접 실행할 수있는 스크립트이기도합니다 (모듈 수준에서 유용한 작업을 수행합니다).

일반적으로 상대 수입보다는 절대 수입을 사용하는 것이 좋습니다.

toplevel_package/
├── __init__.py
├── moduleA.py
└── subpackage
    ├── __init__.py
    └── moduleB.py

에서 moduleB:

from toplevel_package import moduleA

moduleB.py스크립트 로 실행하려면 에 대한 상위 디렉토리 toplevel_packagesys.path.


로부터 문서 :

from .. import scriptA

패키지에서이 작업을 수행 할 수 있지만 직접 실행하는 스크립트에서는 수행 할 수 없습니다. 위 링크에서 :

명시 적 및 암시 적 상대 가져 오기는 모두 현재 모듈의 이름을 기반으로합니다. 주 모듈의 이름은 항상 "__main__"이므로 Python 애플리케이션의 주 모듈로 사용하려는 모듈은 항상 절대 가져 오기를 사용해야합니다.

ABB를 가져 오는 스크립트를 생성하면 ValueError가 표시되지 않습니다.


스크립트를 직접 실행하려는 경우 다음을 수행 할 수 있습니다.

  1. FolderA의 경로를 환경 변수 ( PYTHONPATH)에 추가합니다 .
  2. sys.path스크립트에 경로를 추가하십시오 .

그때:

import module_you_wanted

참고 URL : https://stackoverflow.com/questions/8951255/import-script-from-a-parent-directory

반응형