2011-12-28 50 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

相關問題