我的问题很像其他几个问题。手动编译Python后,缺少sqlite3:
主要区别在于我使用的是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,我需要最新版本。想法?
答案 0 :(得分:8)
在编译Python之前,您需要安装libsqlite3
(基于Debian)或sqlite-devel
(基于RedHat)和相关的头文件,因为Python需要在编译过程中找到它们。
你确定要跑:
./configure
make
make install
按此特定顺序?没有遗漏的步骤?
答案 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
,请添加到您的路径。