我无法在Python 3.5.0版本中导入sqlite3模块。这是我得到的:
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named '_sqlite3'
我知道,我知道,网络上有大量的StackOverflow帖子和支持论坛,人们抱怨这个问题,但到目前为止,所发布的解决方案都没有对我有用。这是我去过的地方:
--enable-loadable-sqlite-extensions
选项重新配置和重新编译Python3.5,就像用户jammyWolf建议的那样。不,同样的错误仍然存在。No module named '_sqlite3'
。 This thread建议模块名称前面的下划线表示该模块是一个实现细节,并未在API中公开。 ......我不知道该如何处理这些信息,但在那里可能会有一些暗示。有任何想法吗?
安装sqlite-devel
包,其中包含构建sqlite3
扩展所需的头文件库。
yum install sqlite-devel
注意:Python不包含sqlite3
库本身,而是包含扩展模块(包装器)。
Falsetru是正确的,我将为那些不熟悉的人(linux指令)详细介绍一下。如果您收到此错误,您可能正在使用没有正确标头编译的python版本。这是一个分步指南,以便对其进行排序。 (Python 3.X.X说明)
sudo apt-get install libsqlite3-dev
sudo apt-get remove python3.6
cd /tmp && wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar -xvf Python-3.6.5.tgz
cd Python-3.6.5 && ./configure
make && sudo make install
如果你做的一切正确运行“python3.6 -V”应该给你你的python版本。请注意,您还必须重建您拥有的任何虚拟环境。
你可能会遇到一个最后的警告。
zipimport.ZipImportError: can't decompress data; zlib not available
如果您没有安装以下zlib库,则会发生这种情况:
sudo apt-get install zlib1g-dev