【问题标题】:Relative import raises ValueError相对导入引发 ValueError
【发布时间】:2012-07-17 09:37:36
【问题描述】:

我有以下目录结构:

src
   __init__.py
   foo1
       __init__.py
      foo1.py
   foo2
     __init__.py
     foo2.py

现在我想从 foo2.py 导入模块 foo1.py。在 foo2.py 中,我使用 from ..foo1.foo1 import * 导入,但我得到的只是:

Traceback (most recent call last):
  File "foo2.py", line 3, in <module>
    from ..foo1.foo1 import *
ValueError: Attempted relative import in non-package

我如何获得这种相对导入?

【问题讨论】:

    标签: python import python-3.x


    【解决方案1】:

    我在这里看到的是基础包,在你的情况下 src 尚未导入,这是使用相对导入的必要条件。

    如果您编写了一个脚本,指出src 文件夹位于sys.path 中,因此可以导入,其中说明:

    import src #this imports the base package
    from src.foo2.foo2 import *
    
    ...
    

    它会起作用的。

    【讨论】:

      猜你喜欢
      • 2021-03-20
      • 2016-05-12
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 2019-12-24
      • 2015-12-08
      相关资源
      最近更新 更多