Предварительная фиксация Windows python с получением ImportError sqlite
Я пытаюсь установить ловушку перед фиксацией. С этой целью я создал.pre-commit-config.yaml
нравится:
repos:
- repo: https://github.com/ambv/black
rev: 19.10b0
hooks:
- id: black
language_version: python3.7
- repo: https://gitlab.com/pycqa/flake8
rev: 3.7.9
hooks:
- id: flake8
Затем в моей среде conda я запускаю pre-commit install
, который работает без ошибок. Однако, когда я совершаю сейчас, я получаю
$ git commit -m "Format code using black + add hooks"
Traceback (most recent call last):
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\site-packages\pre_commit\__main__.py", line 1, in <module>
from pre_commit.main import main
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\site-packages\pre_commit\main.py", line 13, in <module>
from pre_commit.commands.autoupdate import autoupdate
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\site-packages\pre_commit\commands\autoupdate.py", line 14, in <module>
from pre_commit.clientlib import InvalidManifestError
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\site-packages\pre_commit\clientlib.py", line 15, in <module>
from pre_commit.error_handler import FatalError
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\site-packages\pre_commit\error_handler.py", line 10, in <module>
from pre_commit.store import Store
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\site-packages\pre_commit\store.py", line 4, in <module>
import sqlite3
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\sqlite3\__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "c:\users\mathis\anaconda3\envs\pvinspect36\lib\sqlite3\dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.
К сожалению, я не могу воспроизвести эту ошибку из оболочки, потому что там я могу импортировать sqlite3
плавно (используя тот же conda env). Есть идеи, как это можно решить?
1 ответ
Это известная проблема с conda в Windows - я бы предложил использовать официальные питоны python.org
conda делает некоторые интересные вещи со своими связанными библиотеками DLL, которые требуют специальных переменных среды во время выполнения - вы можете обойти эту проблему, убедившись, что ваша среда conda всегда активирована при работе с предварительной фиксацией
вы можете найти дополнительную информацию здесь: https://github.com/conda-forge/pre-commit-feedstock/issues/9
отказ от ответственности, я являюсь автором предварительной фиксации