Python3在Linux上编译后缺少sqlite3

问题描述 投票:0回答:4

我的问题很像其他几个问题。手动编译Python后,缺少sqlite3:

enter image description here

主要区别是我使用的是 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,我需要最新版本。想法?

    

python python-3.x sqlite compilation
4个回答
27
投票
libsqlite3

(基于Debian)或

sqlite-devel
(基于RedHat)以及相关的头文件,因为Python需要在编译过程中找到它们。

您确定要运行吗:

    ./configure
  1. make
  2. make install
  3. 
    
    
  4. 按照这个具体顺序?没有遗漏的步骤吗?


25
投票
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



3
投票

tar -xvf sqlite-autoconf-3270200.tar.gz cd sqlite-autoconf-3270200 ./configure --prefix=$HOME/.local make && make install

这将安装在您的
~/.local

树上。


如果缺少,请将

~/.local/bin

添加到您的路径中。

    


0
投票

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/.

这是我为解决问题所做的副本。

© www.soinside.com 2019 - 2024. All rights reserved.