[英]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.