【发布时间】:2018-04-10 11:22:40
【问题描述】:
我有以下项目结构
main
- exp1
- mod1.py
- exp2
- mod2.py
我可以使用以下命令从 mod1.py 中的 mod2.py 导入模块 abc
from ..exp2.mod2 import abc
有没有其他方法可以在我不必使用.. 的情况下导入这些模块?
【问题讨论】:
标签: python python-2.7
我有以下项目结构
main
- exp1
- mod1.py
- exp2
- mod2.py
我可以使用以下命令从 mod1.py 中的 mod2.py 导入模块 abc
from ..exp2.mod2 import abc
有没有其他方法可以在我不必使用.. 的情况下导入这些模块?
【问题讨论】:
标签: python python-2.7
您始终可以使用绝对模块名称导入
from main.exp2.mod2 import abc
# or
# from exp2.mod2 import abc
# (?)
对我来说这是首选方式。
这种方式和你的方式是唯一可用的选择......
【讨论】:
sys.path 中也手动添加了目录(但这很难看)。
除非您更改项目结构,否则不确定是否有比使用'..' 更简单的方法:
# mod1.py
import sys
sys.path.append('..')
from exp2.mod2 import abc
【讨论】:
您应该始终设置一个 PYTHONPATH,然后从该路径作为主路径导入。
在您的情况下,您应该执行以下操作,
export PYTHONPATH=main (Full path of main dir in shell )
from exp2.mod2 import abc
如果你这样做......这不是一个正确的方法,你在传输代码或部署期间也会遇到一些问题
【讨论】: