目录结构如下:
├─Solution
│ │─Module
│ │ ├─Submodule
│ │ │ │─__init__.py
│ │ │ └─submodule.py
│ │ └─module.py
│ │──main.py
其中 module.py
需要可以在命令行单独运行,使用了 if __name__=="__main__":
读取参数然后再传给其 main
main.py
里 from Module import module
,module.py
里 from Submodule import submodule
预期使用方法是 module.main(args)
报错如下:
Traceback (most recent call last):
File "main.py", line 1, in <module>
from Module import module
File "module.py", line 21, in <module>
from Submodule import submodule
ImportError: No module named 'Submodule'
把 main.py
放到 Module
目录下可以导入,感觉是路径的问题……不知道有没有不用 sys
的方法,不胜感激
那么直接导入是没有问题的:
而运行时,module.py的环境是main.py同级环境,因此:
当然,为了避免如此麻烦,可以通过相对导入: