Windows python предварительная фиксация получения ImportError sqlite - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь настроить хук перед фиксацией. Для этого я создал .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 Ответ

0 голосов
/ 25 марта 2020

это известная проблема с conda на windows - я бы предложил использовать официальные питоны python .org

conda делает некоторые интересные вещи со своими связанными DLL, которые требуют специальных переменных окружения на время выполнения - вы можете обойти это, убедившись, что ваша среда conda всегда активирована при работе с pre-commit

, вы можете найти больше информации здесь: https://github.com/conda-forge/pre-commit-feedstock/issues/9


отказ от ответственности, я автор предварительного коммита

...