사용자가 추가하고 가져 오기 기능을 사용하여 주 프로그램 (foo.py)으로 가져올 수있는 모듈 (.py 파이썬 파일)을 관리하고 실행하는 Python 프로그램을 개발 중입니다. 여기에 내가Python - 상대적 가져 오기
from src.output import *
하지만이 직면하고있는 문제를 사용하여 foo.py에서 가져올 수 있습니다
Foo/
foo.py #Main script. Imports ouput.py, core.py and bar.py when needed.
src/
__init__.py
output.py #Output functions required by bar.py and foo.py
core.py
modules/
__init__.py
bar.py #Needs output.py
디렉토리 구조입니다 그 나는
를 사용하여 bar.py에서 output.py 가져올 때from ..src.output import *
나는 오류를 얻을
ValueError: Attempted relative import beyond toplevel package
다른 프로그래머가 별도로 코드를 작성하는 것이 더 쉽기 때문에 다른 디렉토리에 파일을 넣고 있습니다. 'modules'또는 .py 모듈 파일을 추가 할 수있는 폴더가 필요하고 bar.py에 그 기능이 사용됩니다.
그리고 내가 잘못했는지 말해주십시오. 그리고 그것을 할 수있는 더 좋은 방법을 제안하십시오.
감사합니다.
수입은 모두 최상위 수준입니다. src.output은 Foo/src/output을 찾습니다. ..src.output은 프로젝트 외부로 가져올 수 없으므로 라이브러리가 손상되는 시점에서 Foo를 초과하여 시도합니다. 원하는 모듈을 다른 디렉토리 구조에 추가하거나 클래스 경로를 변경해야합니다. –
아아, 내가 foo.bar ..에서 가져올 때 필요하지 않습니다. 감사. 그러나 이것을 할 수있는 더 좋은 방법이 있습니까? –