[英]No module named _sqlite3
我正在尝试在运行Debian的VPS上运行Django应用程序 5。当我运行演示应用程序时,它返回此错误:
File "/usr/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 30, in <module>
raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc)
ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3
查看 Python 安装,它给出了相同的错误:
Python 2.5.2 (r252:60911, May 12 2009, 07:46:31)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
>>>
阅读 web,我了解到 Python 2.5 应该包含所有必要的SQLite包装器。 我是否需要重新安装 Python,或者是否有其他方法可以启动并运行此模块?
您的 makefile 似乎没有包含适当的.so
文件。 您可以通过以下步骤更正此问题:
sqlite-devel
(或在一些基于 Debian 的系统上安装libsqlite3-dev
)./configure --enable-loadable-sqlite-extensions && make && sudo make install
重新配置和重新编译 Python笔记
sudo make install
部分会将 python 版本设置为系统范围的标准,这可能会产生不可预见的后果。 如果您在工作站上运行此命令,您可能希望将它与现有的 python一起安装,这可以使用sudo make altinstall
来完成。
我遇到了同样的问题(在 Ubuntu Lucid 上从源代码构建python2.5
),并且import sqlite3
抛出了同样的异常。 我已经从包管理器安装了libsqlite3-dev
,重新编译了 python2.5,然后导入工作。
这就是我为使其正常工作所做的工作。
我正在使用安装了 python 2.7.5 的 pythonbrew(使用 pip)。
我首先按照 Zubair(above) 说的做并运行了这个命令:
sudo apt-get install libsqlite3-dev
然后我运行了这个命令:
pip install pysqlite
这解决了数据库问题,我在运行时得到了确认:
python manager.py syncdb
安装sqlite-devel
包:
yum install sqlite-devel -y
从源代码重新编译python:
./configure make make altinstall
我的python是从源代码构建的,原因是exec configure时缺少选项python版本:3.7.4
./configure --enable-loadable-sqlite-extensions --enable-optimizations
make
make install
固定的
我的 _sqlite3.so 在 /usr/lib/python2.5/lib-dynload/_sqlite3.so 中。 从你的路径来看,你应该有文件/usr/local/lib/python2.5/lib-dynload/_sqlite3.so。
请尝试以下操作:
find /usr/local -name _sqlite3.so
如果未找到该文件,则您的 Python 安装可能有问题。 如果是,请确保它的安装路径在 Python 路径中。 在 Python 外壳中,
import sys
print sys.path
在我的例子中,/usr/lib/python2.5/lib-dynload 在列表中,所以它能够找到 /usr/lib/python2.5/lib-dynload/_sqlite3.so。
我发现很多人遇到这个问题,因为我自己的 vps (cent os 7 x64) 上的多版本 Python,我是这样解决的:
找到文件“_sqlite3.so”
find / -name _sqlite3.so
输出: /usr/lib64/python2.7/lib-dynload/_sqlite3.so
找到你要使用的python标准库的目录,
对我来说/usr/local/lib/python3.6/lib-dynload
复制文件:
cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
最后,一切都会好起来的。
我最近尝试在我的 Ubuntu 11.04 桌面上安装 python 2.6.7 以进行一些开发工作。 遇到了与此线程类似的问题。 我通过以下方式修复它:
调整 setup.py 文件以包含正确的 sqlite 开发路径。 setup.py 中的代码片段:
def sqlite_incdir: sqlite_dirs_to_check = [ os.path.join(sqlite_incdir, '..', 'lib64'), os.path.join(sqlite_incdir, '..', 'lib'), os.path.join(sqlite_incdir, '..', '..', 'lib64'), os.path.join(sqlite_incdir, '..', '..', 'lib'), '/usr/lib/x86_64-linux-gnu/' ]
我添加的位是'/usr/lib/x86_64-linux-gnu/'。
运行 make 后,我没有收到任何警告说未构建 sqlite 支持(即,它正确构建 :P ),但在运行make install
,sqlite3 仍然没有导入相同的“ ImportError: No module named _sqlite3" whe running "import sqlite3
”。
所以,库被编译,但没有移动到正确的安装路径,所以我复制了.so
文件( cp /usr/src/python/Python-2.6.7/build/lib.linux-x86_64-2.6/_sqlite3.so /usr/local/python-2.6.7/lib/python2.6/sqlite3/
这些是我的构建路径,你可能需要根据你的设置调整它们)。
瞧! SQLite3 支持现在有效。
这在 Redhat Centos 6.5 中对我有用:
yum install sqlite-devel
pip install pysqlite
sqlite3
附带 Python。 我也有同样的问题,我只是卸载了python3.6
并重新安装了它。
卸载现有的python:
sudo apt-get remove --purge python3.6
安装python3.6:
sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
sudo make altinstall
对于带有 Redhat 7 或 Centos 7 的 Python 3.7.8。
$ yum install sqlite-devel
$ ./configure --enable-optimizations --enable-loadable-sqlite-extensions
$ make install
我在 FreeBSD 8.1 中遇到了问题:
- No module named _sqlite3 -
靠站口解决 ----------
/usr/ports/databases/py-sqlite3
在这之后可以看到:
OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'
是否安装了python-pysqlite2包?
sudo apt-get install python-pysqlite2
检查您的 settings.py 文件。 你不只是为数据库引擎写了“sqlite”而不是“sqlite3”吗?
为登陆此页面寻找 Windows 操作系统解决方案的任何人提供答案:
如果尚未安装,则必须安装 pysqlite3 或 db-sqlite3。 您可以使用以下方法进行安装。
对我来说,问题出在 sqlite3 的 DLL 文件上。
解决方案:
我从sqlite 站点获取了 DLL 文件。 这可能会因您的 Python 安装版本而异。
我把它粘贴到 env 的 DLL 目录中。 对我来说,它是“C:\\Anaconda\\Lib\\DLLs”,但请检查你的。
你必须在centos或redhat并且自己编译python,这是python的错误,在你的python源代码目录中执行此操作并在下面执行此操作
curl -sk https://gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1
我遇到了同样的问题,上面的答案对我没有任何作用,但现在我通过
只需删除python.pip
和sqlite3
并重新安装
sudo apt-get remove python.pip
sudo apt-get remove sqlite3
现在重新安装
sudo apt-get install python.pip
sudo apt-get install sqlite3
就我而言,在再次安装sqlite3
时,它显示了一些错误,然后我输入了
sqlite3
在终端上检查它是否被移除并开始拆包
一旦安装了sqlite3
fireup终端并写入
sqlite3
database.db
(创建数据库)我相信这肯定会帮助你
我很失望这个问题直到今天仍然存在。 因为我最近一直在尝试在 CentOS 8.1 上安装 vCD CLI,并且在尝试运行它时遇到了同样的错误。 在我的情况下,我必须解决的方法如下:
因为我一直这样做是为了创建一篇关于如何安装 vCD CLI 和 VMware Container Service Extension 的不同博客文章。 我最终捕获了我用来解决问题的步骤并将其放在单独的博客文章中:
我希望这有帮助,因为虽然上面的提示帮助我找到了解决方案,但我不得不将其中的几个组合起来并稍微修改一下。
下载 sqlite3:
wget http://www.sqlite.org/2016/sqlite-autoconf-3150000.tar.gz
请按照以下步骤进行安装:
$tar xvfz sqlite-autoconf-3071502.tar.gz
$cd sqlite-autoconf-3071502
$./configure --prefix=/usr/local
$make install
如果您使用的是 FreeBSD,请尝试像这样安装 sqlite。
pkg install py27-sqlite3-2.7.10_6
使用asdf安装 Python 3.8.11 后我遇到了同样的问题
要解决此问题:
我必须安装libsqlite3-dev
sudo apt-get install libsqlite3-dev
然后通过asdf
卸载Python
asdf uninstall python 3.8.11
并通过asdf
再次安装 Python
asdf install python 3.8.11
以下适用于具有虚拟环境的 Python 3.9:
安装 sqlite3 库。
- 激活 Python 虚拟环境。
- 将 sqlite3 文件复制到 Python 虚拟环境中并重命名以支持 Python 3.9。
请注意,我们将文件名中的 38 重命名为 39 以支持 Python 3.9。<\/em>"
我在 python 依赖 package 中设置 python 虚拟环境时遇到了这个问题Ubuntu 。这是因为sqlite绑定了我们的python 。
我得到的错误:
from pysqlite2 import dbapi2 as sqlite3
ModuleNotFoundError: No module named 'pysqlite2'
我通过 --enable-loadable-sqlite-extensions=yes 解决了它 1.) 首先找到您用于创建虚拟环境的 python 或 python 版本。 我用过 python3.8 例如
$ whereis python
python: /usr/bin/python3.6m /usr/bin/python /usr/bin/python3.8 /usr/bin/python2.7-config /usr/bin/python3.8-config python
$ cd /usr/bin
$ls
python3.8
python3.8-config
注意: pytho会有很多package检查。 你会找到每个 python 版本的配置文件,现在使用特定的 python 版本
ox:/usr/bin$ ./python3.8-config --enable-loadable-sqlite-extensions=yes
要么
ox:/usr/bin$ ./python3.8-config --enable-optimizations --enable-loadable-sqlite-extensions
现在,使用 python 版本创建您的虚拟环境,例如 Go 您要在其中创建虚拟环境的文件夹
$ python3.8 -m venv mlwen_jup_env
$ source mlwen_jup_env/bin/activate
完成了,现在你可以安装包了
我在 NetBSD 服务器上遇到了同样的问题。 需要使用pkgin
安装缺少的.so
文件。 为了确定要安装什么 package,我跑了
pkgin search sqlite
结果很多,包括
...
py38-aiosqlite-0.17.0nb1 Async bridge to the standard sqlite3 module
py38-apsw-3.37.0nb2 Python wrapper for SQLite
py38-peewee-3.15.0 Small, expressive ORM for PostgreSQL, MySQL and SQLite
py38-sqlite3-3.8.13nb22 Built-in sqlite support for Python 2.5 and up
py39-aiosqlite-0.17.0nb1 Async bridge to the standard sqlite3 module
py39-apsw-3.37.0nb2 Python wrapper for SQLite
py39-peewee-3.15.0 Small, expressive ORM for PostgreSQL, MySQL and SQLite
py39-sqlite3-3.9.13nb22 Built-in sqlite support for Python 2.5 and up
...
(以及其他 python 版本)。 我使用的是 python 3.9,所以py39-sqlite3-3.9.13nb22
是我的正确选择。 跑步
sudo pkgin install py39-sqlite3-3.9.13nb22
为我解决了这个问题。
你需要在你的python环境中安装pysqlite :
$ pip install pysqlite
尝试复制_sqlite3.so
以便 Python 可以找到它。
它应该很简单:
cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/
相信我,试试吧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.