Python 多重导入

发布于 2022-09-04 01:55:48 字数 842 浏览 16 评论 0

目录结构如下:

├─Solution
│  │─Module
│  │   ├─Submodule
│  │   │  │─__init__.py
│  │   │  └─submodule.py
│  │   └─module.py
│  │──main.py

其中 module.py 需要可以在命令行单独运行,使用了 if __name__=="__main__": 读取参数然后再传给其 main

main.pyfrom Module import module
module.pyfrom 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 的方法,不胜感激

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

本宫微胖 2022-09-11 01:55:48

那么直接导入是没有问题的:

from Module import module

而运行时,module.py的环境是main.py同级环境,因此:

from Module.Submodule import submodule

当然,为了避免如此麻烦,可以通过相对导入:

shell> touch Solution/Module/__init__.py
shell> vim module.py
      from .Submodule import submodule
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文