相对导入在Python上不起作用,之前已经起作用

问题描述 投票:0回答:1

我的相对进口货停止了,我做了很多尝试。我真的很想使用相对导入,但它们似乎对我不起作用。

我的项目看起来像这样:

package/
    __init__.py
    subpackage1/
        __init__.py
        module1.py
        module2.py
     tests/
         __init__.py
         test_module1.py

因此,当我运行test_module1时,如果使用from .module2 import foo in module1,它将不起作用。但是,如果我使用from subpackage1.module2 import foo,它将起作用。

我得到的错误是ImportError: attempted relative import with no known parent package

我尝试过的:

将子包标记为Pycharm中的根源。一次又一次地添加__init__.py。我研究了各种stackoverflow问题,并尝试了许多解决方案,但是它们没有用。他们中的大多数人都说我需要一个init。

当前软件包被标记为源根,您有什么建议吗?我将永远感激不尽。

python-3.x pycharm
1个回答
0
投票

我想出了问题。我实际上不是从test_module1.py运行的。我从module1运行,这导致名称成为主要名称,从而造成了问题。因此,当文件从其他位置运行时,相对导入有效。

© www.soinside.com 2019 - 2024. All rights reserved.