Ошибка "ModuleNotFoundError: нет модуля с именем" pysqlcipher3 "" при использовании Python 3.7 в Windows 10
Я пытаюсь расшифровать один файл базы данных с помощью Python 3.7. Таким образом, чтобы расшифровать его, я должен использовать версию pysqlcipher3 для Python 3.7. Чтобы установить его, я попытался с помощью обеих команд:
pip3 install pysqlcipher3
а также
pip install pysqlcipher3
и обе команды показали успешную установку пакета pysqlcipher. Но теперь проблема в том, когда я пытаюсь импортировать pysqlcipher3 в моем проекте на Python, используя эту строку:
from pysqlcipher3 import dbapi2 as sqlite
это показывает мне эту ошибку:
ModuleNotFoundError: No module named 'pysqlcipher3
Я проверил различные проекты GitHub, но ни один из них не дает четкого рабочего решения. На веб-сайте пакетов python говорится об установке libsqlcipher в вашей ОС, но на этот раз проблема та же, нет документации и ссылок, касающихся установки libsqlcipher для windows 10. Так что кто-нибудь, пожалуйста, может предоставить мне правильные шаги установки или любой документ или любое видео учебник по поводу того же или есть ли проблемы с оператором импорта?
9 ответов
Обычно я не публикую ответы, но это сработало для меня в Ubuntu:
$ git clone https://github.com/coleifer/sqlcipher3
$ cd sqlcipher3
$ python setup.py build # Build against the system libsqlcipher
$ sudo python setup.py install
$ cd ..
затем введите приглашение python и попробуйте:
from sqlcipher3 import dbapi2 as sqlcipher
Вам необходимо установить библиотеку
libsqlcipher-dev
из вашего менеджера репозитория, например:
sudo apt install libsqlcipher-dev
Будет полезно, если вы сможете вставить изображение всей ошибки.
В частности, я обнаружил, что dbapi2 очень печально известен отсутствием dll. Значит, у вас может быть та же причина.
Проверьте, есть ли у вас несколько установок pip, используяwhere pip
Также проверьте интерпретатор, который используется в вашем проекте. Убедитесь, что он соответствует интерпретатору python, соответствующему установке pip, в которой был установлен модуль.
иди к кассе, откуда твой пип, используя
pip -V
, он выводит вам путь через точку.
Проверьте, находится ли этот путь в
venv
ты хочешь. В противном случае пакет был установлен по неверному пути.
Возможно, вам придется установить
libsqlcipher
из источника.
С https://github.com/sqlcipher/sqlcipher
Использование MSVC
В Windows все применимые продукты сборки можно скомпилировать с помощью MSVC. Сначала откройте окно командной строки, связанное с нужной версией компилятора (например, «Командная строка разработчика для VS2013»). Затем используйте NMAKE с предоставленным файлом Makefile.msc для создания одной из поддерживаемых целей.
Например:
mkdir bld cd bld nmake /f Makefile.msc TOP=..\sqlite nmake /f Makefile.msc sqlite3.c TOP=..\sqlite nmake /f Makefile.msc sqlite3.dll TOP=..\sqlite nmake /f Makefile.msc sqlite3.exe TOP=..\sqlite nmake /f Makefile.msc test TOP=..\sqlite
Есть несколько параметров сборки, которые можно установить через командную строку NMAKE. Например, чтобы построить для WinRT, просто добавьте аргумент «FOR_WINRT=1» в командную строку «sqlite3.dll» выше. При отладке кода SQLite рекомендуется добавить аргумент «DEBUG=1» в одну из приведенных выше командных строк.
SQLite не требует запуска Tcl, но установка Tcl требуется для make-файлов (в том числе для MSVC). SQLite содержит много сгенерированного кода, и Tcl используется для создания большей части этого кода.
Проверьте, установлено ли в вашей операционной системе несколько версий Python. Также, если вы используете виртуальную среду, вы должны активировать ее перед установкой каких-либо пакетов.
Похоже, что-то с операционной системой, так как я использую Ubuntu и Windows 10 на одной машине, и это не работает с Ubuntu, но работает на Win 10
Вам нужно будет установить sqlcipher и библиотеку python pysqlcipher3 примерно так:
brew install sqlcipher
pip3 install pysqlcipher3 --user