没有_sqlite3命名的模块

我尝试在我的副总裁上运行姜戈应用程序,运行Debian5。当我运行演示应用程序时,返回以下错误:

  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上阅读,我了解到Python2.5应该附带所有必要的SQLite包装器。我是否需要重新安装Python,或者是否有其他方法可以启动并运行此模块?

337744 次浏览

是否安装了python-pysqlite2软件包?

sudo apt-get install python-pysqlite2

我的_sqlite3.so位于/usr/lib/python2.5/lib-dynload/_sqlite3.so中。根据路径判断,您应该具有文件/usr/local/lib/python2.5/lib-dynload/_sqlite3。

请尝试以下操作:

find /usr/local -name _sqlite3.so

如果找不到该文件,则您的Python安装可能有问题。如果是,请确保它的安装路径位于Python路径中。在Python shell中,

import sys
print sys.path

在我的例子中,/usr/lib/python2.5/lib-dynload在列表中,所以它能够找到/usr/lib/python2.5/lib-dynload/_sqlite3.so.

正在检查settings.py文件。 您不是只为数据库引擎编写了“ SQLite ”而不是“ sqlite3 ”吗?

我遇到了同样的问题(在Ubuntu Lucid上从源代码构建python2.5),import sqlite3抛出了同样的异常。我已经从包管理器安装了libsqlite3-dev,重新编译了Python2.5,然后导入成功了。

我最近尝试在我的Ubuntu11.04桌面上安装Python2.6.7来进行一些开发工作。遇到了与此线程类似的问题。我试图通过以下方式修复它:

  1. 调整setup.py文件以包含正确的SQLite dev路径。来自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/'。

  2. 运行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支持现在可以工作。

我在FreeBSD 8.1中遇到了问题:

- No module named _sqlite3 -

它是通过站在港口来解决的--

/usr/ports/databases/py-sqlite3

在此之后,可以看到:

OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'

您需要在Python环境中安装PySQLite

    $ pip install pysqlite

这就是我所做的让它工作。

我使用的是安装了Python 2.7.5的PythonBrew(使用PIP)。

我首先按照Zubair(上面)所说的那样运行这个命令:

sudo apt-get install libsqlite3-dev

然后我运行了这个命令:

pip install pysqlite

这解决了数据库问题,我在运行时得到了确认:

python manager.py syncdb

您必须使用CentOS或RedHat并自己编译Python, 这是Python的错误 在Python源代码目录中执行此操作,并在下面

执行此操作
curl -sk https://gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1

您的Makefile似乎未包含适当的.so文件。您可以通过以下步骤解决此问题:

  1. 安装sqlite-devel(或在某些基于Debian的系统上安装libsqlite3-dev
  2. 使用./configure --enable-loadable-sqlite-extensions && make && sudo make install重新配置和重新编译Python

注意

sudo make install部分将把Python版本设置为系统范围的标准,这可能会产生不可预见的后果。如果您在自己的工作站上运行此命令,您可能希望在现有的Python上安装它在旁边,这可以通过sudo make altinstall来完成。

这在RedHat CentOS 6.5中对我有用:

yum install sqlite-devel
pip install pysqlite
  1. 安装sqlite-devel软件包:

    yum install sqlite-devel -y

  2. 从源代码

    重新编译Python:

    ./configure
    make
    make altinstall
    

我在Ubuntu上使用Python3.5时遇到了同样的问题,当时我使用的是派恩夫

如果您正在使用派恩夫安装Python,则它将被列为常见的生成问题之一。要解决此问题,请删除已安装的Python版本,安装Requirements(对于此特定情况,请libsqlite3-dev),然后使用重新安装Python版本

pyenv install <python-version>

然后根据需要重新创建virtualenv.

下载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

我发现很多人遇到这个问题是因为多版本的Python, 在我自己的VPS(Cent OS 7 x64)上,我是这样解决的:

  1. 找到文件“_sqlite3.so ”

    find / -name _sqlite3.so
    

    输出:/usr/lib64/python2.7/lib-dynload/_sqlite3.so

  2. 找到要使用的Python标准库的目录,

    对我来说,/usr/local/lib/python3.6/lib-dynload

  3. 复制文件:

    cp   /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
    

Finally, everything will be ok.

我也遇到了同样的问题,上面的答案对我不起作用。 但现在我把它修好了。

只需卸下python.pipsqlite3,然后重新安装

  1. sudo apt-get remove python.pip
  2. sudo apt-get remove sqlite3

现在再次安装它

  1. sudo apt-get install python.pip
  2. sudo apt-get install sqlite3

在我的例子中,当安装sqlite3时,它再次显示一些错误 然后我打字。

  1. sqlite3

在终端上检查它是否被移除,并开始打开包装。

安装sqlite3

后 启动终端并写入

  1. sqlite3
  2. database.db(用于创建数据库)

我相信这肯定会对你有帮助。

Python附带了sqlite3。我也遇到了同样的问题,我只是卸载了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

尝试复制_sqlite3.so,以便Python可以找到它。

它应该很简单:

cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/

相信我,试试看。

我的Python是从源代码构建的,原因是在执行配置时缺少选项 Python版本:3.7.

./configure --enable-loadable-sqlite-extensions --enable-optimizations
make
make install

固定的

为任何登陆此页面搜索Windows操作系统解决方案的人提供答案:

您必须安装pysqlite3或db-sqlite3(如果尚未安装)。您可以使用以下命令进行安装。

  • PIP安装pysqlite3
  • PIP安装db-sqlite3

对我来说,问题出在SQLite3的DLL文件上。

解决方案:

  1. 我从SQLite站点中获取DLL文件。这可能因您的不同而不同 Python安装的版本。

  2. 我将其粘贴到的DLL目录中 环境。对我来说,它是“ C:\anaconda\lib\DLLs ”,但请检查您的。 Before and After placing DLL file

我很失望这个问题直到今天仍然存在。因为我最近一直在尝试在CentOS 8.1上安装VCD CLI,当我尝试运行它时,我遇到了同样的错误。在我的案例中,我必须解决这个问题的方法如下:

  • 使用正确的前缀从头开始安装sqlite3
  • 清理我的Python安装
  • 运行make install以重新安装Python

因为我一直在做这件事,以创建一个关于如何安装VCD CLI和VMware容器服务扩展的不同的博客文章。我最终捕获了我用来解决这个问题的步骤,并将其放在一个单独的博客文章中:

http://www.virtualizationteam.com/cloud/running-vcd-cli-fail-with-the-following-error-modulenotfounderror-no-module-named-_sqlite3.html.

我希望这是有帮助的,因为虽然上面的提示帮助我找到了一个解决方案,但我不得不将其中的几个结合起来,并对它们进行一些修改。

对于RedHat 7或CentOS 7的Python 3.7.8。

  • 安装SQLite-devel
$ yum install sqlite-devel
  • 使用SQLLite扩展编译并安装Python3
$ ./configure --enable-optimizations --enable-loadable-sqlite-extensions
$ make install

如果您使用的是FreeBSD,请尝试像这样安装SQLite.

pkg install py27-sqlite3-2.7.10_6

在使用阿斯德夫安装Python3.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:

  1. 安装sqlite3库。

    sudo apt-get install libsqlite3-dev
    
  2. 激活Python虚拟环境。

    source env/bin/activate
    
  3. 将sqlite3文件复制到Python虚拟环境中,并将其重命名为支持Python 3.9。

    cp /usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so ./env/lib/python3.9/site-packages
    mv ./env/lib/python3.9/site-packages/_sqlite3.cpython-38-x86_64-linux-gnu.so ./env/lib/python3.9/site-packages/_sqlite3.cpython-39-x86_64-linux-gnu.so
    

请注意,我们在文件名中将38重命名为39,以支持Python3.9。

当我在乌班图中的Python虚拟环境中设置时,我遇到了多个依赖于Python的包的问题。这是因为SQLite绑定了我们的蟒蛇

我得到的错误

    from pysqlite2 import dbapi2 as sqlite3
ModuleNotFoundError: No module named 'pysqlite2'

我通过--enable-loadable-SQLite-extensions=yes解决了这个问题。 )首先找到用于创建虚拟环境的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进行多个包检查。您将找到每个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版本创建您的虚拟环境 例如: 转到要在其中创建虚拟环境

的文件夹
$ python3.8 -m venv mlwen_jup_env
$ source mlwen_jup_env/bin/activate

它完成了,现在你可以安装软件包。

我在NetBSD服务器上遇到了同样的问题。缺少.so文件,需要使用pkgin进行安装。为了确定要安装的软件包,我运行了

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版本)。我使用的是Python3.9,所以py39-sqlite3-3.9.13nb22是我的正确选择。跑步

sudo pkgin install py39-sqlite3-3.9.13nb22

帮我解决了这个问题。