본문 바로가기
파이썬

파이썬 현재 디렉토리에서 모듈을 강제로 가져 오기

by º기록 2021. 1. 29.
반응형

a b 모듈이있는 패키지 p 가 있습니다. a b 에 의존합니다.

b.py 콘텐츠 :

import a

그러나 b p 패키지 디렉토리에서 a 모듈을 가져 오는 것을 확인 하고 싶습니다. code> a PYTHONPATH 의 모듈.

그래서 다음과 같이 b.py 를 변경하려고합니다.

from . import a

이것은 내가 p 패키지 디렉토리 밖에있을 때 b 를 가져 오는 한 작동합니다. 다음 파일이 주어집니다.

/tmp
    /p
       a.py
       b.py
       __init__.py

다음 작업 :

$ cd /tmp
$ echo 'import p.b' | python

다음은 작동하지 않습니다.

$ cd /tmp/p
$ echo 'import b' | python
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "b.py", line 1, in <module>
    from . import a
ValueError: Attempted relative import in non-package

이유

추신 Python 2.7.3을 사용하고 있습니다.

 

해결 방법

 


b 가 자체 패키지에서 a 를 가져 오려면 b 에 다음을 작성하기에 충분합니다.

import a

다음은 문서의 인용문입니다.

하위 모듈은 종종 서로를 참조해야합니다. 예를 들어 surround module might use the echo module. In fact, such references are so common that the import statement first looks in the containing 표준 모듈 검색 경로를 살펴보기 전에 패키지를 선택하세요.

참고 : J.F. Sebastian이 아래 주석에서 제안했듯이 암시 적 가져 오기 사용은 권장되지 않으며 실제로 Python 3에서 사라졌습니다.

 

참조 페이지 https://stackoverflow.com/questions/14216200

 

 

반응형

댓글