파이썬 3 서브 모듈 설정은 -m 스위치로 실행할 때 경로를 업데이트하지 않습니다. [python]


Answers

Question

나는 다음과 같은 프로젝트 구조를 가지고있다 :

server/
   server.py
   __init__.py

   sockets/
      module.py
      __init__.py

PYTHONPATH 를 서버 위의 하나의 디렉토리로 설정합니다 (예 : /home/user/server 에는 서버가 있고 PYTHONPATH/home/user 설정되어 있습니다).

주 파일은 server.py . 모듈을 가져옵니다.

import sockets
from sockets.module import Module

내가 python3 $PYTHONPATH/server/server.py 직접 실행하면 완벽하게 작동합니다. 그러나 python3 -m server.server.py 호출하면 Python 경로 지옥을 피하기 위해 명시 적으로 권장되지만 모듈을 찾는 데는 실패하지만 실패합니다.

/usr/bin/python3: Error while finding spec for 'server.server.py' (<class 'ImportError'>: No module named 'sockets')

모듈 가져 오기가 하위 모듈을 가져 오지 못하는 이유는 무엇입니까? 서브 패키지를 올바르게 설치하는 방법은 무엇입니까?