没有名为“_sqlite3”的模块 Python 3.7.5 Centos 7
No module named '_sqlite3' Python 3.7.5 Centos 7
我正在尝试在 Centos 7 系统上将 sqlite3 与 Python3.7.5 一起使用。
有
python3.7 -c "import sqlite3;print(sqlite3.version)"
我得到了以下内容
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python3.7/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.7/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
所以我尝试从以下来源重新安装 Python:
yum install -y gcc make sqlite-devel zlib-devel libffi-devel openssl-devel wget
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar xzf Python-3.7.5.tgz
cd Python-3.7.5
sudo ./configure --enable-optimizations --enable-loadable-sqlite-extensions
sudo make
sudo make altinstall
但即使同时使用 sqlite-devel 和 --enable-loadable-sqlite-extensions 我仍然有同样的问题
NB1:
以下
ll /usr/local/lib/python3.7/lib-dynload/ | grep sqlite
-rwxr-xr-x. 1 root root 311272 Jan 6 11:49 _sqlite3.cpython-37m-x86_64-linux-gnu.so
和
ll /usr/local/lib/python3.7/sqlite3/
total 16
-rw-r--r--. 1 root root 2687 Jan 6 11:50 dbapi2.py
-rw-r--r--. 1 root root 2825 Jan 6 11:50 dump.py
-rw-r--r--. 1 root root 1018 Jan 6 11:50 __init__.py
drwxr-xr-x. 2 root root 4096 Jan 6 11:51 __pycache__
drwxr-xr-x. 3 root root 210 Jan 6 11:50 test
存在
NB2: 从头开始在 Docker 容器上试验相同的命令时,sqlite3 完美运行
FROM centos:7
RUN yum update -y && \
yum install -y \
gcc make sqlite-devel zlib-devel libffi-devel openssl-devel wget
RUN wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz && \
tar xzf Python-3.7.5.tgz && \
cd Python-3.7.5 && \
./configure --enable-optimizations --enable-loadable-sqlite-extensions && \
make altinstall && \
cd .. && \
rm -Rf Python-3.7.5 && \
rm -f Python-3.7.5.tgz
我是不是漏掉了什么?
所以我终于找到了解决办法:
我删除了所有 python 二进制文件并从 /usr/local/bin
链接了 files/folders 我删除了 /usr/local/lib/python3.7
.
我已经从源代码中重新安装了 Python,现在 SQLite 工作得很好。
我想我一定对以前 Python 安装的遗留物有问题。
我正在尝试在 Centos 7 系统上将 sqlite3 与 Python3.7.5 一起使用。
有
python3.7 -c "import sqlite3;print(sqlite3.version)"
我得到了以下内容
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python3.7/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.7/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
所以我尝试从以下来源重新安装 Python:
yum install -y gcc make sqlite-devel zlib-devel libffi-devel openssl-devel wget
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar xzf Python-3.7.5.tgz
cd Python-3.7.5
sudo ./configure --enable-optimizations --enable-loadable-sqlite-extensions
sudo make
sudo make altinstall
但即使同时使用 sqlite-devel 和 --enable-loadable-sqlite-extensions 我仍然有同样的问题
NB1:
以下
ll /usr/local/lib/python3.7/lib-dynload/ | grep sqlite
-rwxr-xr-x. 1 root root 311272 Jan 6 11:49 _sqlite3.cpython-37m-x86_64-linux-gnu.so
和
ll /usr/local/lib/python3.7/sqlite3/
total 16
-rw-r--r--. 1 root root 2687 Jan 6 11:50 dbapi2.py
-rw-r--r--. 1 root root 2825 Jan 6 11:50 dump.py
-rw-r--r--. 1 root root 1018 Jan 6 11:50 __init__.py
drwxr-xr-x. 2 root root 4096 Jan 6 11:51 __pycache__
drwxr-xr-x. 3 root root 210 Jan 6 11:50 test
存在
NB2: 从头开始在 Docker 容器上试验相同的命令时,sqlite3 完美运行
FROM centos:7
RUN yum update -y && \
yum install -y \
gcc make sqlite-devel zlib-devel libffi-devel openssl-devel wget
RUN wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz && \
tar xzf Python-3.7.5.tgz && \
cd Python-3.7.5 && \
./configure --enable-optimizations --enable-loadable-sqlite-extensions && \
make altinstall && \
cd .. && \
rm -Rf Python-3.7.5 && \
rm -f Python-3.7.5.tgz
我是不是漏掉了什么?
所以我终于找到了解决办法:
我删除了所有 python 二进制文件并从 /usr/local/bin
链接了 files/folders 我删除了 /usr/local/lib/python3.7
.
我已经从源代码中重新安装了 Python,现在 SQLite 工作得很好。
我想我一定对以前 Python 安装的遗留物有问题。