[英]Cannot import sqlite3 in Python3
我无法在 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 帖子和支持论坛,人们抱怨这个问题,但到目前为止,没有一个已发布的解决方案对我有用。 这是我去过的地方:
我还在这台运行 CentOS 6.8 x86_64 的服务器上安装了 Python 2.6.6。 在使用 Python 2.6.6 时,我可以打开 Python REPL 并导入 sqlite3 就好了。 我也可以直接从 bash 中使用 sqlite3 并且没有任何问题。
这个有用的问题看起来很有希望。 正如用户 jammyWolf 建议的那样,我尝试使用--enable-loadable-sqlite-extensions
选项重新配置和重新编译 Python3.5。 不,同样的错误仍然发生。
我一直在使用虚拟环境,就像一个好孩子,但我有这台服务器的 root 访问权限。 所以,我是一个坏男孩,在没有激活任何虚拟环境的情况下以 root 身份运行 python3。 仍然没有运气。 所以我认为这与权限无关。
我注意到在错误消息中,它说No module named '_sqlite3'
。 该线程建议模块名称前的下划线表示该模块是一个实现细节,未在 API 中公开。 ...我不确定如何处理这些信息,但其中可能有提示。
有什么想法吗?
Falsetru 是正确的,对于那些不熟悉的人(linux 说明),我将更详细地介绍。 如果您收到此错误,很可能您使用的是在没有正确头文件的情况下编译的 python 版本。 这是对其进行排序的分步指南。 (Python 3.XX 说明)
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
安装sqlite-devel
包,其中包括构建sqlite3
扩展所需的头文件和库。
yum install sqlite-devel
注意:Python 不包括sqlite3
库本身,而是一个扩展模块(包装器)。
我将 sqlite3.dll 复制到此文件夹中:
C:\Users\*****\Anaconda3\DLLs
经过两周的尝试,它奏效了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.