2011-12-28 53 views
4

这是一个复杂的问题,至少对我而言有点难。这里是:在Linux上以用户身份构建Python 2.5与完整Sqlite3

我正在作为Linux服务器上的用户工作,可以安全地假设安装任何尚未安装的软件包是根本不可能的。

另外我需要设置工作的Python 2.5(未安装)与工作SQLite3库(Sqlite在任何形式没有安装)。

什么我可以做的是: 1.编译的Python 2.5和使它工作的SQLite3

的 2.编译合并反正 - Python 2.5的被认为具有SQLITE3内置(pysqlite)的相互作用。这似乎真的就够了,但是进口的sqlite3: 进口sqlite3的 失败,因为 - 到底 - 这是不可能导入_sqlite3

一些使用Google使我明白,虽然pysqlite可内置的SQLite是不是。因此,我认为我需要在本地sqlite中构建,并以某种方式使这两个软件进行交互。

不够公平。

我能够 - 我希望如此 - 编译合并到共享对象,但它似乎凌乱。我应该将sqlite3.so重命名为_sqlite3并将其扔到某处?它似乎有点鱼腥味,我试了它,并得到一个错误: 动态模块没有定义初始化函数(init_sqlite3)

在这一点上,我有点卡住了。我不太熟悉编译/编译内容 - 我承认sudo apt-get/sudo yum让我变得懒惰,但由于某种原因,目前它不是一种选择。

帮助感谢!

+0

在配置Python之前,您是否执行过“sudo apt-get install libsqlite3-dev”或为您的发行版安装类似的软件包?它应该自动检测可选的依赖关系。 – 2011-12-28 13:05:34

+0

@Niklas,看起来他没有这个系统的sudo权限。 – 2011-12-28 13:12:00

+0

@Rob:啊,我知道我错过了一些东西.. – 2011-12-28 13:27:04

回答

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! 
+0

事实上,这是我寻找的解决方案,谢谢。 – nimdil 2011-12-28 15:36:50

+1

有没有办法替换_sqlite3 lib而不是重建python的整个副本?我有一个情况,我只是想升级我的sqlite副本几个修订... – 2012-11-09 22:24:33

+0

我认为我们需要指定的Python建设的SQLite头和库文件的路径,虽然在某些情况下,路径已经存在于默认路径配置中。 http://stackoverflow.com/questions/26261080/compile-python-3-4-with-sqlite3 – hylepo 2016-09-09 04:34:23

相关问题