我的项目结构存在一些问题 由于历史原因,项目看起来像这样:
Source/
__init__.py
module1/
__init__.py
script1.py
module2/
__init__.py
script2.py
在生产中它像这样部署
server/
__init__.py
module1/
__init__.py
script1.py
module2/
__init__.py
script2.py
问题是script2.py
有这样的导入:
from server.module1.script1 import something
是否可以说python来搜索server.***
而不是server/***
但是Source/***
?
现在我用符号链接做了这个,但看起来很难看
答案 0 :(得分:1)
您始终可以在sys.modules
字典中添加密钥;这些作为模块的别名:
import sys
try:
import server
except ImportError:
import Source
sys.modules['server'] = Source
一旦server
是sys.modules
中的条目,就会找到所有子模块和包,并且server
条目将被用作进一步导入的起点。< / p>