python - '尝试在非包中进行相对导入'尽管包在一个目录中具有 __init__.py

标签 python python-2.7 python-import

我有一个名为 extended.py 的模块,其中包含以下行:

from .basic import BasicModule

并且文件 basic.py__init__.py 位于同一目录中。但是,当我尝试将其运行为:

python extended.py

我得到错误:

ValueError: Attempted relative import in non-package

同时添加一行:

from __future__ import absolute_import

不能解决问题。 也许我太累了,看不到明显的东西 - 但我看不到这里的问题。

最佳答案

相对导入仅适用于包,但是当您在 extended.py 中导入时,您正在运行 顶级模块

当前目录可能包含一个 __init__.py 文件,但这还没有使 exended.py 成为包的一部分。

对于被视为包的东西,您需要导入 目录名称。以下将起作用:

main.py

packagename\
    __init__.py
    basic.py
    extended.py

然后在 main.py 中放入:

import packagename.extended

并且只有 then 是一个包的 extended 的一部分并进行相对导入工作。

相对导入现在与 to 是相对的,即 packagename 父级。

关于python - '尝试在非包中进行相对导入'尽管包在一个目录中具有 __init__.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14664313/

相关文章:

python - 读取当前正在写入的 gzip 文件

python - 使用 Bottledwater-pg,Python 消费者如何读取数据?

ubuntu - LPSolve、Python 和 Ubuntu?

python - 使用相互或循环(循环)导入时会发生什么?

Python请求: disallow cookies

python - 无法理解和使用 Statsmodels 的 SARIMAX `conf_int()` 输出

python - 列表列表中的非规范化层次结构

python - 如何根据另一列的值替换一列的 NaN 值?

python - 导入 Google 联系人库时出错?

python - Theano 导入错误-windows 7