没有名为 _sqlite3 的模块

2025-01-20 09:07:00
admin
原创
130
摘要:问题描述:我正在尝试在运行Debian 5 的VPS上运行Django应用程序。当我运行演示应用程序时,它返回此错误: File "/usr/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in...

问题描述:

我正在尝试在运行Debian 5 的VPS上运行Django应用程序。当我运行演示应用程序时,它返回此错误:

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

在网上阅读后,我了解到 Python 2.5 应该附带所有必要的SQLite包装器。我需要重新安装 Python 吗,或者还有其他方法可以启动并运行此模块?


解决方案 1:

您的 makefile 似乎未包含适当的.so文件。您可以按照以下步骤更正此问题:

  1. 安装sqlite-devel(或libsqlite3-dev在某些基于 Debian 的系统上)

  2. 使用以下命令重新配置并重新编译 Python./configure --enable-loadable-sqlite-extensions && make && sudo make install


笔记

sudo make install部分将把该 Python 版本设置为系统范围的标准,这可能会带来无法预料的后果。如果您在工作站上运行此命令,您可能希望将其现有 Python 一起安装,这可以使用 来完成sudo make altinstall

解决方案 2:

我在 Ubuntu 上使用pyenv时遇到了与 Python 3.5 相同的问题。

如果你使用pyenv安装 python ,它被列为常见构建问题之一。要解决此问题,请删除已安装的 python 版本,安装要求(针对此特定情况libsqlite3-dev),然后使用以下命令重新安装 python 版本

pyenv install <python-version> 

然后如果需要的话重新创建虚拟环境。

解决方案 3:

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

解决方案 4:

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

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

固定的

解决方案 5:

  1. 安装sqlite-devel包:

yum install sqlite-devel -y

  1. 从源代码重新编译python:

./configure
make
make altinstall

解决方案 6:

这就是我为了让它工作而做的事情。

我正在使用安装了 python 2.7.5 的 pythonbrew(使用 pip)。

我首先按照 Zubair (上述)所说的操作,并运行以下命令:

sudo apt-get install libsqlite3-dev

然后我运行了这个命令:

pip install pysqlite

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

python manager.py syncdb

解决方案 7:

适用于 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

解决方案 8:

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

  1. 找到文件“_sqlite3.so”

find / -name _sqlite3.so

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

  1. 找到要使用的python标准库的目录,

为我/usr/local/lib/python3.6/lib-dynload

  1. 复制文件:

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

最后,一切都会好起来的。

解决方案 9:

我的 _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 shell 中,

import sys
print sys.path

就我而言,/usr/lib/python2.5/lib-dynload 在列表中,因此它能够找到 /usr/lib/python2.5/lib-dynload/_sqlite3.so。

解决方案 10:

我最近尝试在 Ubuntu 11.04 桌面上安装 Python 2.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/”。

  1. 运行 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 支持现已可用。

解决方案 11:

这在 Redhat Centos 6.5 中对我有用:

yum install sqlite-devel
pip install pysqlite

解决方案 12:

使用asdf安装 Python 3.8.11 后我遇到了同样的问题

解决此问题的方法:

我必须安装libsqlite3-dev

sudo apt-get install libsqlite3-dev

然后通过以下方式卸载 Pythonasdf

asdf uninstall python 3.8.11

然后通过以下方式再次安装 Pythonasdf

asdf install python 3.8.11

解决方案 13:

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

解决方案 14:

我遇到了同样的问题,上面的答案对我没有任何作用,但现在我通过

只需删除 python.pip 和 sqlite3 并重新安装

  1. sudo apt-get 删除 python.pip

  2. sudo apt-get 删除 sqlite3

现在再次安装

  1. sudo apt-get 安装 python.pip

  2. sudo apt-get 安装 sqlite3

在我的情况下,再次安装 sqlite3 时显示一些错误,然后我输入

  1. sqlite3

在终端上检查它是否已被删除,然后它开始解压它

安装 sqlite3 后,启动终端并写入

  1. sqlite3

  2. database.db(创建数据库)我相信这肯定会对你有帮助

解决方案 15:

python-pysqlite2包是否安装了?

sudo apt-get install python-pysqlite2

解决方案 16:

检查您的 settings.py 文件。您不是只将数据库引擎的“sqlite”写成了“sqlite3”吗?

解决方案 17:

以下内容适用于具有虚拟环境的 Python 3.9:

  1. 安装 sqlite3 库。

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

source env/bin/activate
  1. 将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 以支持 Python 3.9。

解决方案 18:

为进入此页面寻找 Windows 操作系统解决方案的任何人提供答案:

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

  • pip 安装 pysqlite3

  • pip 安装 db-sqlite3

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

解决方案:

  1. 我从sqlite 站点获取了 DLL 文件。这可能会根据您安装的 python 版本而有所不同。

  2. 我将其粘贴到环境的 DLL 目录中。对我来说它是“C:\Anaconda\Lib\DLLs”,但请检查你的。
    放置 DLL 文件之前和之后

解决方案 19:

我很失望这个问题至今仍然存在。我最近一直试图在 CentOS 8.1 上安装 vCD CLI,当我尝试运行它时,出现了同样的错误。我解决问题的方法如下:

  • 使用适当的前缀从头安装 SQLite3

  • 清理我的 Python 安装

  • 运行 Make install 重新安装 Python

由于我一直在这样做,所以要创建一篇关于如何安装 vCD CLI 和 VMware Container Service Extension 的不同博客文章。我最终记录了修复该问题所使用的步骤,并将其放在了另一篇博客文章中:

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

我希望这会有所帮助,因为虽然上述技巧帮助我找到了解决方案,但我必须结合其中的一些并对其进行一些修改。

解决方案 20:

我在 FreeBSD 8.1 中遇到了问题:

- No module named _sqlite3 -

通过支持端口来解决----------

/usr/ports/databases/py-sqlite3

此后可以看到:

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

解决方案 21:

你必须在 centos 或 redhat 中自己编译 python,这是 python 的错误,在你的 python 源代码目录中执行此操作,然后执行以下操作

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

解决方案 22:

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

pkg install py27-sqlite3-2.7.10_6

解决方案 23:

我在 Ubuntu 上使用 Python3.9 和 venv。我遇到了同样的问题。首先我安装了 pysqlite

pip install pysqlite3

但它被安装在/home/<user>/.local/lib/python3.9/site-packages/pysqlite3

然后我将其移至本地目录

mv /home/<user>/.local/lib/python3.9/site-packages/pysqlite3 /usr/local/lib/python3.9/sqlite3

注意名称从更改pysqlite3sqlite3

解决方案 24:

我在Ubuntu中的 python 虚拟环境中设置时遇到了多个 python 依赖包的问题。这是因为我们的python有sqlite绑定。

我收到的错误

    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 的包检查。您将找到每个 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

已完成,现在您可以安装软件包

解决方案 25:

我在 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 版本)。我使用的是 Python 3.9,所以py39-sqlite3-3.9.13nb22对我来说是正确的选择。运行

sudo pkgin install py39-sqlite3-3.9.13nb22

为我解决了这个问题。

解决方案 26:

我决定重新安装 Python pyenv install <version>,然后pyenv rehash。不破坏任何先前创建的虚拟环境

解决方案 27:

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

解决方案 28:

如果您使用,python3.10.0您可以将其更改为python3.10.13,一切都会好起来。

解决方案 29:

你需要在你的python环境中安装pysqlite :

    $ pip install pysqlite

解决方案 30:

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

它应该很简单:

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

相信我,尝试一下。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2941  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1803  
  PLM(产品生命周期管理)系统在企业的产品研发、生产与管理过程中扮演着至关重要的角色。然而,在实际运行中,资源冲突是经常会遇到的难题。资源冲突可能导致项目进度延迟、成本增加以及产品质量下降等一系列问题,严重影响企业的效益与竞争力。因此,如何有效应对PLM系统中的资源冲突,成为众多企业关注的焦点。接下来,我们将详细探讨5...
plm项目管理系统   31  
  敏捷项目管理与产品生命周期管理(PLM)的融合,正成为企业在复杂多变的市场环境中提升研发效率、增强竞争力的关键举措。随着技术的飞速发展和市场需求的快速更迭,传统的研发流程面临着诸多挑战,而将敏捷项目管理理念融入PLM,有望在2025年实现研发流程的深度优化,为企业创造更大的价值。理解敏捷项目管理与PLM的核心概念敏捷项...
plm项目   31  
  模块化设计在现代产品开发中扮演着至关重要的角色,它能够提升产品开发效率、降低成本、增强产品的可维护性与可扩展性。而产品生命周期管理(PLM)系统作为整合产品全生命周期信息的关键平台,对模块化设计有着强大的支持能力。随着技术的不断发展,到 2025 年,PLM 系统在支持模块化设计方面将有一系列令人瞩目的技术实践。数字化...
plm软件   28  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用