은 가정하자 나는 다음과 같은 프로젝트가 조직이 있습니다이해 파이썬 수입 시스템 및 프로젝트 구조
ProjectRoot/
__init__.py
test.py
A/
__init__.py
a_test.py
B/
__init__.py
b_test.py
을 그리고 a_test이 b_test에 의존한다는 것을 가정한다. 따라서 소스 코드는 비교적 간단합니다 :
#
# a_test.py
#
from B.b_test import b_test_class
class a_test_class:
def func(self):
print("a_test_class")
b_instance = b_test_class()
b_instance.func()
if __name__ == "__main__":
a_instance = a_test_class()
a_instance.func()
#
# b_test.py
#
class b_test_class:
def func(self):
print("b_test_class")
#
# test.py
#
from A.a_test import a_test_class
if __name__ == "__main__":
a_instance = a_test_class()
a_instance.func()
test.py 스크립트를 실행하는 동안 모든 것이 의도 한대로 작동합니다. 파이썬은 문제없이 모든 모듈을로드하고 실행합니다. 이제 질문이옵니다 : 어떻게하면 test.py없이 a_test.py를 시작할 수 있습니까? 기본적으로, 내가 달성하고자하는 것은 projectRoot/A로 cd하고 a_test.py를 실행하는 것입니다. 이 ImportError를지고 결과가 없습니다 : 다음입니다
ProjectRoot/
customLibModuleA/
...
customLibModuleB/
...
mainApp.py
그리고 내가 무엇을 만들 수 있도록하려면 :
가 현재 나는 다음과 같은 구조의 프로젝트를 생성 할 수있었습니다 'B'라는 이름의 모듈을 :
ProjectRoot/
customLibModuleA/ #custom protocol implementation
...
customLibModuleB/ #custom logging functions
...
application1/ #server
...
application2/ #client
...
복잡한 프로젝트를 어떻게 관리해야합니까? 프로젝트 구조화 매뉴얼과 스타일 가이드에 대한 좋은 참고 자료는 환영합니다.