python - 在 PyCharm 中使用预提交
问题描述
我正在尝试从 PyCharm (v. 2020.2) 中的“提交”按钮启动我的预提交挂钩。我使用了一个 conda venv(使用创建conda create -n py38 python=3.8
),我在其中安装了带有pip install
.
我的.pre-commit-config.yaml
阅读:
repos:
- repo: local
hooks:
- id: black
name: black
language: system
entry: black --check
types: [python]
- id: isort
name: isort
language: system
entry: isort --check-only
types: [python]
我在这里使用local
repo,因为我会将我的代码推送到未连接到 Internet 的 Intranet 存储库。
从我的本地机器上的命令行运行pre-commit run --all-files
运行良好。但是当我尝试从 PyCharm ( ) 提交时,它会引发以下错误:
Traceback (most recent call last):
File "c:\bib\envs\py38\lib\runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None, File "c:\bib\envs\py38\lib\runpy.py", line 86, in _run_code exec(code, run_globals)
File "c:\bib\envs\py38\lib\site-packages\pre_commit\__main__.py", line 1, in
from pre_commit.main import main
File "c:\bib\envs\py38\lib\site-packages\pre_commit\main.py", line 13, in
from pre_commit.commands.autoupdate import autoupdate
File "c:\bib\envs\py38\lib\site-packages\pre_commit\commands\autoupdate.py", line 14, in
from pre_commit.clientlib import InvalidManifestError
File "c:\bib\envs\py38\lib\site-packages\pre_commit\clientlib.py", line 16, in
from pre_commit.error_handler import FatalError
File "c:\bib\envs\py38\lib\site-packages\pre_commit\error_handler.py", line 10, in
from pre_commit.store import Store
File "c:\bib\envs\py38\lib\site-packages\pre_commit\store.py", line 4, in
import sqlite3
File "c:\bib\envs\py38\lib\sqlite3\__init__.py", line 23, in
from sqlite3.dbapi2 import *
File "c:\bib\envs\py38\lib\sqlite3\dbapi2.py", line 27, in
from _sqlite3 import *
ImportError: DLL load failed while importing _sqlite3: The specified module could not be found.
我认为github上的这个错误报告特别重要。pre-commit
如果我理解得很好,它暗示 PyCharm 实际上并没有加载 venv,因此没有在这个环境中找到已安装的包。虽然没有提出解决方案。
有人有解决方案吗?
解决方案
推荐阅读
- typescript - 如何使用 API v3 在 typescript 中设置谷歌驱动器文件权限?
- javascript - 如何感知可靠的移动设备角度?
- python - 数据框 concat 中的计划形状问题
- android - 获取对子节点 firebase 的引用
- matlab - Matlab是英文版,但是当绘图时我得到了中文
- c# - Parse csv to decimal on different cultures using CsvHelper in c#
- javascript - 在 html 的数据标题中添加#id
- c++ - 是否可以在不手动将重写的克隆方法添加到 C++ 中的每个派生类的情况下克隆多态对象?
- java - 无法将 Spring Boot RestController 响应转换为 JSON:`No converter found for return value of type: class ...`
- php - 从 mysql 表中获取不同的行,这是特定于用户 ID 的最后一个条目