A instalação dos sub-módulos Python3 não atualiza os caminhos quando executada com a opção -m
Eu tenho a seguinte estrutura de projeto:
server/
server.py
__init__.py
sockets/
module.py
__init__.py
eu colocoPYTHONPATH
para um diretório acima do servidor (por exemplo/home/user/server
contém servidor,PYTHONPATH
está definido/home/user
)
O arquivo principal éserver.py
; importa módulos:
import sockets
from sockets.module import Module
Quando eu corropython3 $PYTHONPATH/server/server.py
diretamente ele funciona perfeitamente. No entanto, quando eu ligopython3 -m server.server.py
ele falha, apesar de ser explicitamente recomendado evitar o caminho do Python, mas falha ao encontrar o módulo, com uma mensagem feia:
/usr/bin/python3: Error while finding spec for 'server.server.py' (<class 'ImportError'>: No module named 'sockets')
Por que a importação do módulo falha ao importar submódulos? Como configurar corretamente os subpacotes?