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

时间:2011-12-28 12:54:05

标签: python gcc sqlite 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让我很懒,但由于某种原因它暂时不是一个选项。

帮助表示赞赏!

1 个答案:

答案 0 :(得分:6)

首先使用--prefix下载,构建和安装sqlite3。然后构建具有相同前缀的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!