使用完整的Sqlite3作为Linux上的用户构建Python 2.5

nim*_*dil 4 python sqlite gcc shared-libraries pysqlite

这是一个复杂的问题,至少对我而言.在这里:

我在linux服务器上以用户身份工作,可以安全地假设安装任何尚未安装的软件包根本不可能.

此外,我需要使用工作的SQLite3库(未安装的任何形式的Sqlite)设置Python 2.5(未安装).

我能做的是:1.编译Python 2.5并使其工作2.编译SQLite3的合并

无论如何 - Python 2.5应该与Sqlite3内置(pysqlite)进行交互.这似乎是真的,但导入sqlite3:import sqlite3失败,因为 - 最终 - 导入_sqlite3是不可能的

一些谷歌搜索让我明白,虽然pysqlite可能是内置的,但sqlite不是.因此我假设我需要在本地构建sqlite并以某种方式使这两个软件进行交互.

很公平.

我能够 - 我希望如此 - 编译合并到共享对象,但它看起来很混乱.我应该将sqlite3.so重命名为_sqlite3并将其扔到某个地方吗?看起来有点腥,我还是尝试了它并得到一个错误:动态模块没有定义init函数(init_sqlite3)

在这一点上,我有点卡住了.我不太熟悉构建/编译东西 - 我承认sudo apt-get/sudo yum让我很懒,但由于某种原因它暂时不是一个选项.

帮助赞赏!

Ski*_*Ski 6

首先使用a下载,构建和安装sqlite3 --prefix.然后构建具有相同前缀的python,它将找到sqlite安装并将构建_sqlite3模块.

$ mkdir -p ~/applications/src
$ cd ~/applications/src
$ wget http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz
$ tar xvvf sqlite-autoconf-3070900.tar.gz
$ cd sqlite-autoconf-3070900
$ ./configure --prefix=~/applications
$ make
$ make install

$ cd ~/applications/src
$ wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
$ tar xvvf Python-2.5.2.tgz
$ cd Python-2.5.2
$ ./configure --prefix=~/applications
$ make
$ make install

$ ~/applications/bin/python
>>> import sqlite3
>>> # no error!
Run Code Online (Sandbox Code Playgroud)