이 구조는 단지 일례여러 상대 수입 3.5
pkg\
test\
__init__.py
test.py
__init__.py
source.py
another_source.py
another_source.py
class Bar():
def __init__(self):
self.name = "bar"
source.py
from another_source import Bar
class Foo():
def __init__(self):
self.name = "foo"
b = Bar()
test.py
from ..source import Foo
if __name__== "__main__":
f = Foo()
print(f.name)
인
이제 test.py를 실행하고 싶습니다. 그것이 answer으로 받아 들여 한 바와 같이 나는 나의 현재 패키지 위에 가서
python -m pkg.test.test
를 실행해야하지만이 작동하지 않고 파이썬은 나에게 나는 모든 another_source을 제거하면 역 추적
Traceback (most recent call last):
File "-\Python35\lib\runpy.py", line 170, in _run_module_as_main
"__main__", mod_spec)
File "-\Python35\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "~\test\test.py", line 1, in <module>
from ..source import Foo
File "~\source.py", line 1, in <module>
from another_source import Bar
ImportError: No module named 'another_source'
을 제공합니다 - 그것이 작동하지만, 그것은 해결책이 아닙니다.
이제는 저 위에 하나의 디렉토리에있는 장소에서 수업을 가져 오는 정상적인 방법이 있습니까?
'from pkg.source import Foo'가 필요합니다. –