반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 목록에서 여러 문자를 제거하려면 어떻게해야합니까? (0) | 2021.01.29 |
---|---|
파이썬 바이너리 파일을 구조체로 읽기 (0) | 2021.01.29 |
파이썬 Windows에서 fcntl 대체 (0) | 2021.01.29 |
파이썬 Python : if 문에서 RegEx를 사용하는 방법은 무엇입니까? (0) | 2021.01.29 |
파이썬 데이터 프레임 목록을 다중 시트 Excel 스프레드 시트에 저장 (0) | 2021.01.29 |
댓글