目录结构如下:
├─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 的方法,不胜感激
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
那么直接导入是没有问题的:
而运行时,module.py的环境是main.py同级环境,因此:
当然,为了避免如此麻烦,可以通过相对导入: