2009-09-24 169 views
1

我想安裝pysqlite,並有麻煩。我發現最可能的原因是缺少sqlite頭文件,我必須安裝它們。我的平臺:CentOS版本5.3(最終版)。我有Python-2.6.2。我應該如何處理軟件包?

我也發現我需要.rpm文件。據我所知,我執行:

rpm -i sqlite3-devel-3.n.n.n.rpm 

和一切都應該罰款。

但是,我不知道在哪裏可以找到sqlite3-devel-3.n.n.n.rpm文件。它應該已經在我的系統上了嗎?我找不到「locate sqlite3-devel-3」。我應該下載這個文件嗎?如果是,我可以在哪裏找到它,以及我應該使用哪個版本?我的意思是,.rpm文件應該可能與我在計算機上的sqlite版本一致?如果是這樣的話,我怎麼才能找到我的sqlite的版本?

如果我 「從pysqlite2進口dbapi2爲sqlite的」 I型得到:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: No module named pysqlite2 

「蔭搜索pysqlite」 給我下面的:

Loaded plugins: fastestmirror 
Excluding Packages in global exclude 
list Finished 
==== Matched: pysqlite ==== python-sqlite.x86_64 : Python bindings 
for sqlite. 

順便說一句,我有以下目錄: /home/myname/opt/lib/python2.6/sqlite3 有我有以下文件:

dbapi2.py dbapi2.pyc dbapi2.pyo 
dump.py dump.pyc dump.pyo 
__init__.py __init__.pyc __init__.pyo test 

如果我輸入「進口單元測試」,然後選擇「導入sqlite3的是sqlite的」我得到:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/home/myname/opt/lib/python2.6/sqlite3/__init__.py", line 24, in <module> 
    from dbapi2 import * File "/home/myname/opt/lib/python2.6/sqlite3/dbapi2.py", 
line 27, in <module> 
    from _sqlite3 import * ImportError: No module named _sqlite3 

預先感謝您。

回答

2

您可以使用buildout來創建項目的本地化版本。這將安裝所有必要的軟件包,而無需sudo訪問服務器。

爲了給它嘗試,做到以下幾點:

mkdir tmp 
cd tmp 
wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py 
python bootstrap.py init 
vim buildout.cfg 

編輯buildout.cfg,並替換爲以下:

[buildout] 
parts = sqlite 

[sqlite] 
recipe = zc.recipe.egg 
eggs = pysqlite 
interpreter = mypython 

現在,運行./bin/buildout重建項目。這將下載所有必要的軟件包併爲您創建一個新的解釋器,您可以使用可以訪問sqlite的測試。

./bin/buildout 
./bin/mypython 
>>> import sqlite3 

這給你一個受控的環境,你可以用它來開發裏面的。 要了解有關構建的更多信息,可以觀看來自pycon 2009的關於Setuptools,Distutils和Buildout的視頻。

Eggs and Buildout Deployment in Python - Part 1

Eggs and Buildout Deployment in Python - Part 2

Eggs and Buildout Deployment in Python - Part 3

好運

3

Python 2.6(以及更早的版本)包括sqlite Python org library ref,所以你不需要這樣做。只需將其導入並運行

+0

如果鍵入 「從pysqlite2進口dbapi2爲sqlite的」 我得到: 回溯(最近最後一次通話): 文件「 「,第1行,在 ImportError:沒有名爲pysqlite2的模塊 – Verrtex 2009-09-24 13:16:14

+1

使用yum搜索功能在您的Centos存儲庫中搜索。 百勝搜索pysqlite 我得到: 蟒蛇-sqlite.i386 1.1.7-1.2.1安裝 從匹配: http://pysqlite.org/ 在我的系統有一個叫sqlite3的 – whatnick 2009-09-24 13:36:32

+1

當圖書館是模塊包括在Python中它是爲sqlite3和重命名爲sqlite3 我懷疑你需要較舊的sqlite2 – Mark 2009-09-24 13:45:13

1

通常情況下,你應該通過yum安裝python sqlite模塊,就如同:

yum install python-sqlite 

,然後編輯代碼改變sqlite2引用sqlite3

順便說一句,每當您閱讀說明安裝sqlite3-devel-3.n.n.n.rpm時,n部件不是字面的;它們應該被替換爲指定rpm軟件包版本的數字。

+0

當我使用yum「install python-sqlite」時,我得到: 你需要是root用戶才能執行這個命令。 我可以在沒有root權限的情況下安裝sqlite嗎? – Verrtex 2009-09-24 17:14:55

+1

一般來說,不是。因此,如果您可以在該機器上使用sudo,則應該執行'sudo yum install python-sqlite'並輸入您的密碼,或者您應該要求系統管理員爲您執行此操作。 – tzot 2009-09-24 18:26:21

相關問題