Python 3.x Pytest与相对导入失败

Python 3.x Pytest与相对导入失败,python-3.x,pycharm,pytest,python-import,Python 3.x,Pycharm,Pytest,Python Import,我在Pycharm中有以下项目结构- project/ src/ main.py config/ __init__.py settings.py package1/ __init__.py client.py # Imports settings from config using -> from ..config import setti

我在Pycharm中有以下项目结构-

project/
    src/
        main.py
        config/
            __init__.py
            settings.py
        package1/
            __init__.py
            client.py # Imports settings from config using -> from ..config import settings
        tests/
            __init__.py
            test.py
所以这里我的client.py导入设置-

from ..config import settings
main.py导入客户端-

from package1.client import clientFunction # ClientFunction is the method defined inside client.py
我使用pytest来运行测试。现在,当我运行pytest配置时,在我的测试用例中,我导入main。我在代码中没有看到任何错误,但当测试运行时,它会显示-

from ..config import settings
E   ValueError: attempted relative import beyond top-level package

我怎样才能解决这个问题?pytest似乎采用了不同的路径来执行测试,因此相对导入超出了顶层。

欢迎使用堆栈溢出。我不是100%确定相对导入语法,但在上次导入
中似乎有一个空格。。配置
。在
src
中也没有
\uuuu init\uuuu.py
使其成为名称空间包,我不确定在这种情况下相对导入是否有效。如果您正在安装该软件包,则仅通过配置导入设置
即可工作(如果您不安装该软件包,则可能无法工作,但在安装后即可工作)。抱歉,这是一个输入错误。换了。src文件夹是包含包的源文件夹。将init.py放在其中是否理想?你安装它是什么意思?我有一个venv,其中系统导入是基于POMENT进行的,但这些是我编写的包。也许设置pytest工作目录可以解决它?嗯,pytest工作目录主要是关于您可以在其中键入
pytest something
,pytest配置文件获取其所有相关路径,请参阅。关于使用我推荐的
src
布局。我真的不知道诗歌的细节…将src目录标记为源根目录就做到了。谢谢你的帮助