我的问题很像其他几个问题。手动编译Python后,缺少sqlite3:
主要区别是我使用的是 Debian Linux 系统(与此问题不同:OS X 10.8.2 python 3 import sqlite error)和 Python3(与此问题和其他问题不同:Cannot import SQLite 与 Python 2.6)。
我希望获得一些关于从哪个方向进行故障排除的指导。根据一些 Linux-but-old-Python 问题,像我遇到的错误可能是由 链接期间缺少资源引起的或其他东西(_sqlite3.so)。我的系统上有两个这样的文件,它们都在较旧的 Python 安装中,...但与 Python3 无关。或者其中之一就足够了吗?或者他们说“安装 libsqlite3-dev 包”,然后重新编译 Python。我这样做了,但我不明白在我的系统上放置这个包会如何影响编译过程。事实上,事实并非如此。第二次编译给了我第二个没有 sqlite3 的 Python。 我希望我可以这样做
apt-get install python3
,但是Debian,就其稳定性而言,只有Python 3.2,我需要最新版本。想法?
libsqlite3
(基于Debian)或
sqlite-devel
(基于RedHat)以及相关的头文件,因为Python需要在编译过程中找到它们。您确定要运行吗:
./configure
make
make install
apt-get install libsqlite3-dev
然后
./configure --prefix=/opt/python3.7.4 --with-ssl --with-pydebug
make
make install
注意:你可能需要
apt-get install libssl-dev
,如果你编译python3.7
,openssl版本必须高于1.0.2 对我来说,我使用的是ubuntu 14.04(可信),我找不到
libssl-dev
包来满足编译带有ssl支持的python3.7的要求。我修改我的
/etc/apt/sourcelist.d
deb http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted
deb-src http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted
安装较新的 libssl-dev 后,然后将其改回原来的版本
deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted
tar -xvf sqlite-autoconf-3270200.tar.gz
cd sqlite-autoconf-3270200
./configure --prefix=$HOME/.local
make && make install
这将安装在您的
~/.local
树上。
如果缺少,请将
~/.local/bin
添加到您的路径中。
cp ~/.pyenv/versions/3.10.123.10.12/lib/python3.10/lib-dynload/_sqlite3.cpython-310-x86_64-linux-gnu.so ~/.pyenv/versions/3.10.12/3.10.13/lib/python3.10/lib-dynload/.
这是我为解决问题所做的副本。