python - 导入的 Python 模块中的导入语句如何工作?

标签 python import

假设我有以下文件夹结构:

project/
    a.py
    module/
        b.py
        c.py
        __init__.py

a.py需要导入b.py,所以应该包含from module import b

b.py 需要导入 c.py,所以它应该简单地包含 import c,因为它们在同一个文件夹中。但是当 a.py 运行时,这会抛出一个 ModuleNotFoundError

如果我将 b.py 中的行切换为 from module import c 那么 a.py 将运行,但如果我尝试单独运行 b.py 会抛出 ModuleNotFoundError

在 Python 中导入的正确方法是什么?

最佳答案

在 python 3 中尝试使用:

from . import c

在你的 module/b.py 文件中。

这会强制解释器在本地文件夹中查找模块。

你将无法运行你的 b 模块(至少不能使用 python module/b.py),如果你需要它是一个可执行文件,也许看看:

Relative imports in Python 3

如建议的那样,要运行你的 b 模块,你可以这样做

python -m module.b

来自父文件夹。

关于python - 导入的 Python 模块中的导入语句如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49948258/

相关文章:

node.js - 导入不起作用 NodeJs 应用程序 React SSR

python - 在python中动态导入子模块

javascript - 在 Javascript 中从文件导入数组

python - 带有变量赋值的python中的列表理解

python - Azure 机器学习 Python 模块无法执行对认知服务的调用

python - 将数据粘贴到 Pandas 数据框中

python - 如何设置和替换 django 的目录结构?

python - 你在 Python 中使用 "global"语句吗?

python - Python 中的 imp.load_source()

javascript - 使用 XMLHttpRequest 请求在 JavaScript 中显示纯文本文件的选定部分