pylint和预提交钩子无法导入

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

我的项目结构如下:

project/
   app/
      main.py
   venv/
   .pylintrc
   .pre-commit-config.yaml

[当我尝试编辑project/app/main.py时失败,并显示Unable to import 'psycopg2' (import-error)

但是当我尝试直接将这个文件pylint时,它可以工作。

.pre-commit-config.yaml看起来像这样:

-   repo: https://github.com/PyCQA/pylint
    rev: pylint-2.4.2
    hooks:
    -   id: pylint
pylint pre-commit-hook pre-commit pre-commit.com
1个回答
0
投票

不确定这是否使其正确地成为pylint,但pre-commit/mirrors-pylint的底部没有免责声明

pre-commit从隔离的virtualenv运行pylint。许多pylint的检查会执行动态分析,而这将失败。您可能会发现将pylint配置为local hook更有用。

如果您的依赖项很少,local可能足以使其正常工作,但是最好将additional_dependencies钩子用于需要(基本上)导入代码的事物


免责声明:我是local的作者>

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