我正在使用以下 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)
之类的错误。
如何解决这个问题?
一种选择是修改
.pylintrc
中 init-hook 中的 Python 路径,例如
[MASTER]
init-hook=
import sys
sys.path.append("./src")