【问题标题】:ModuleNotFoundError: No module named '_sqlite3'ModuleNotFoundError:没有名为“_sqlite3”的模块
【发布时间】:2017-10-15 02:07:27
【问题描述】:

在 Redhat 4.4.7-18 上,我尝试使用 sqlite 运行 python3 代码,但出现以下导入错误:

Traceback (most recent call last):
  File "database.py", line 7, in <module>
    import sqlite3
  File "/usr/local/lib/python3.6/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.6/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

我尝试安装它:

>sudo pip install sqlite3
Collecting sqlite3
  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/sqlite3/

(当网络可达时......)并使用以下命令:

> sudo yum install sqlite-devel
Loaded plugins: post-transaction-actions, product-id, refresh-packagekit,
              : rhnplugin, search-disabled-repos, security, subscription-manager
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Package sqlite-devel-3.6.20-1.el6_7.2.x86_64 already installed and latest version
Nothing to do

所以是安装了还是没安装?有什么建议可以解决原来的问题吗?

【问题讨论】:

  • sqlite3 是一个可选模块在标准库中,它不是为你的平台编译的。你是如何安装 Python 的?如果您从源代码编译,则需要为要编译的模块提供 sqlite 开发头文件。
  • 是否有页面描述检查我是否有标题,如何安装标题,如何以及在哪里编译 sqlite?
  • 在 Redhat 上,我现在会寻找 libsqlite3-devel 包。
  • 请看看我原来的问题:我已经试过了!它说:“无事可做”......
  • 我确实问过你是如何安装 Python 的。 ./configure 脚本有一个 --help 选项,它详细说明了它要寻找的所有不同的东西,以及如何告诉它去别处寻找。如果您没有在标准位置的 SQLite 标头的机器上编译 Python,则永远不会编译 _sqlite3 C 模块,这就是我能告诉您的全部内容,所以我给出了标准响应。

标签: python-3.x sqlite redhat


【解决方案1】:

不是一个直接的答案,但我的搜索引擎在这里结束了......所以对于我的网络冲浪者来说:

我有一个类似的问题,但在 ubuntu 16.04 上手动编译 python3.6 版本:

    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

我必须安装libsqlite3-dev (sudo apt install libsqlite3-dev) 并从 python3.6 开始编译才能使其工作。

【讨论】:

  • 对我来说,我不得不为 rhel/centos 使用“sudo yum install libsqlite3x-devel.x86_64”
  • 这仅适用于 ubuntu 和 Debian 操作系统
  • 查看链接的答案以按照答案中的说明重新编译 pyenv env:stackoverflow.com/questions/56994638/…
【解决方案2】:

是的。

sudo yum install sqlite-devel

接着从源代码重建 Python 3.8.3 就成功了。谢谢!

【讨论】:

  • 有同样的错误但是已经安装了sqlite-devel
【解决方案3】:

在成功安装 sqlite3 后,我在 linux mint 20 上遇到了这个问题

from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

另外,无法将 sqlite3 导入 python 解释器

修复:

sudo apt install libsqlite3-dev

cd 你的 python 安装程序目录

./配置 须藤制作安装

【讨论】:

  • 对我来说就像你说的那样添加:./configure --enable-loadable-sqlite-extensions --enable-optimizations
猜你喜欢
  • 2010-11-15
  • 2012-07-20
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 2015-03-11
相关资源
最近更新 更多