13

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

在此处输入图像描述

主要区别在于我使用的是 Debian Linux 系统(与此问题不同:OS X 10.8.2 python 3 import sqlite error)和 Python3(与此问题和其他一些问题不同:Cannot import SQLite with Python 2.6)。

我希望得到一些关于在哪个方向进行故障排除的指导。根据一些 Linux 但较旧的 Python 问题,像我遇到的错误可能是由于链接期间缺少资源或其他原因(_sqlite3.所以)。我的系统上有两个这样的文件,它们都在较旧的 Python 安装中,......但与 Python3 没有任何关系。还是其中之一足够好?或者他们说安装 libsqlite3-dev 包,然后重新编译 Python。我这样做了,但我不明白在我的系统上安装这个包会如何影响编译过程。事实上,它没有。第二次编译给了我第二个没有 sqlite3 的 Python。

我希望我能做到apt-get install python3,但 Debian 在其稳定性方面只有 Python 3.2,我需要最新版本。想法?

4

3 回答 3

20

您需要在编译 Python 之前安装libsqlite3(基于 Debian)或sqlite-devel(基于 RedHat)和相关的头文件,因为 Python 需要在编译过程中找到它们。

你确定运行:

  1. ./configure
  2. make
  3. make install

在这个特定的顺序?没有遗漏的步骤?

于 2013-09-11T20:46:23.557 回答
9

apt-get install libsqlite3-dev

然后

./configure --prefix=/opt/python3.7.4 --with-ssl --with-pydebug

make
make install

注意:您可能还需要,如果您正在编译 python3.7 apt-get install libssl-dev,则 openssl 版本必须高于1.0.2

对我来说,我使用的是 ubuntu 14.04(值得信赖)我找不到一个libssl-dev包来满足编译 python3.7 并支持 ssl 的要求。我修改我的 /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
于 2019-08-13T14:44:28.550 回答
3

如果您只有有限的用户访问权限(没有 root 或 sudo 权限),您可以安装到用户可访问的本地环境,如下所示:

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

这将安装在您的~/.local树上。

~/.local/bin如果丢失,请添加到您的路径。

于 2019-04-01T13:01:46.760 回答