从同一级别的子目录导入模块的更好方法

时间:2018-04-10 11:22:41

标签: python python-2.7

我有以下项目结构 main - exp1 - mod1.py - exp2 - mod2.py

我可以使用以下

从mod1.py中的mod2.py导入模块abc

from ..exp2.mod2 import abc

有没有其他方法导入这些模块,我不必使用..

3 个答案:

答案 0 :(得分:1)

您始终可以使用绝对模块名称

导入
from main.exp2.mod2 import abc  
# or 
# from exp2.mod2 import abc
# (?)

对我而言,这是首选方式。

这种方式和你的是唯一可用的选择......

答案 1 :(得分:1)

除非您改变项目结构,否则不确定是否比使用'..'更简单:

# mod1.py
    import sys
    sys.path.append('..')
    from exp2.mod2 import abc

答案 2 :(得分:0)

您应始终设置PYTHONPATH,然后从该路径导入为main。

在您的情况下,您应该执行以下操作,

export PYTHONPATH=main   (Full path of main dir in shell )
from exp2.mod2 import abc

如果你这样做......当你转移代码或在部署期间遇到问题时,这也不是一个正确的方法