python - 在同一目录中导入模块[重复]

Posted

技术标签:

【中文标题】python - 在同一目录中导入模块[重复]【英文标题】:python -- import module in same directory [duplicate] 【发布时间】:2014-11-16 19:09:03 【问题描述】:

我有一个这样的项目设置(告诉我是否错误):

 project/
     module_1/
         __init__.py
         foo.py
     module_2/
         __init__.py
         bar.py

在 foo.py 中:

from module_2 import bar

我明白了:

ImportError: No module named module_2

但是,如果我将项目设置更改为:

 project/
     module_1/
         __init__.py
         foo.py
         module_2/
             __init__.py
             bar.py

它有效。我该如何解决这个问题?

谢谢

【问题讨论】:

你是在 foo.py 中导入吗? 是的——无论 import 语句是在 module_one/foo.py 还是 module_one/__init__.py 中都会发生 因为你在 foo 中时 module2 是一个步骤。你应该写 ../module2 导入栏。注意 ../ 我的***目录中没有 init.py。应该有吗? 【参考方案1】:

尝试相对导入:

from ..module_2 import bar

然后你将它称为 bar: bar.method()。

编辑: 将__main__.py 添加到project 并从上一层运行它,使用

python -m project

【讨论】:

它给出了“尝试从另一个包进行相对导入”错误

以上是关于python - 在同一目录中导入模块[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从项目中导入模块[重复]

在pycharm中导入自定义模块

python 中导入redis模块

在完全不同的目录中导入 python 模块

在 ROS2 的包中导入模块

在 Node.js 中导入:错误“必须使用导入来加载 ES 模块”[重复]