带有 src 布局的 Pylint 测试目录会引发导入错误

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

我正在使用以下 src 布局:

src
├── packagename
│   ├── __init__.py
│   └── subpackage
│       └── __init__.py
│       └── somemodule.py
├── .pylintrc 
│   ...
tests
├── subpackage
│   └── __init__.py 
│   └── test_somemodule.py
├── __init__.py
├── .pylintrc
│   ...
pyproject.toml

我们对测试目录进行 linting,并在

tests/.pylintrc
定义了一些宽松的规则。当使用非 src 布局时,我们没有遇到任何问题。 由于
pytest
中的以下指令,
pyproject.toml
可以正常工作,尽管也可以通过安装带有 tox 的软件包来解决这个问题:

[tool.pytest.ini_options]
pythonpath = [
  "src"
]

运行 lint 时:

pylint --rcfile src/packagename/.pylintrc -j 0 src
pylint --rcfile tests/.pylintrc j 0 tests

我们收到诸如

E0401: Unable to import 'packagename.subpackage' (import-error)
之类的错误。

如何解决这个问题?

python pylint tox pyproject.toml
1个回答
0
投票

一种选择是修改

.pylintrc
中 init-hook 中的 Python 路径,例如

[MASTER]
init-hook=
    import sys
    sys.path.append("./src")
© www.soinside.com 2019 - 2024. All rights reserved.