Python3编译后缺少sqlite3

时间:2013-09-11 20:43:08

标签: python python-3.x sqlite compilation

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

enter image description here

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

我希望能找到一些指导方针来解决问题。根据一些Linux-but-old-Python问题,我得到的错误可能是由于链接期间缺少资源或其他东西(_sqlite3.so)。我的系统上有两个这样的文件,它们都是旧的Python安装,但是没有任何与Python3相关的文件。或者其中一个足够好?或者他们说安装libsqlite3-dev软件包,然后重新编译Python。我这样做了,但我不知道如何在我的系统上使用这个包会影响编译过程。事实上,它没有。第二次编译给了我第二个没有sqlite3的Python。

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

3 个答案:

答案 0 :(得分:8)

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

你确定要跑:

  1. ./configure
  2. make
  3. make install
  4. 按此特定顺序?没有遗漏的步骤?

答案 1 :(得分:3)

apt-get install libsqlite3-dev

之后

然后

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

make
make install

注意:您可能需要apt-get install libssl-dev aslo,如果您正在编译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

答案 2 :(得分:0)

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

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

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

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