Come devo gestire pacchetti software?
Domanda
Sto cercando di installare pysqlite ed avere problemi con questo. Ho scoperto che la ragione più probabile che manca le intestazioni SQLite e devo installarli. La mia piattaforma: CentOS 5.3 rilasciano (finale). Ho Python-2.6.2.
Inoltre ho scoperto che ho bisogno di file .rpm. Per quanto li ho eseguo:
rpm -i sqlite3-devel-3.n.n.n.rpm
e tutto dovrebbe andare bene.
Tuttavia, non so dove trovare il file sqlite3-devel-3.n.n.n.rpm. Dovrebbe essere già sul mio sistema? Non riuscivo a individuarlo con "localizzare sqlite3-devel-3". Dovrei scaricarlo? Se sì dove posso trovarlo e quale versione dovrei usare? Voglio dire, il file .rpm dovrebbe essere, probabilmente, in linea con la versione di SQLite che ho sul mio computer? Se è il caso, come posso scoprire la versione del mio SQLite?
Se scriv "dal dbapi2 pysqlite2 importazione come sqlite" ottengo:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pysqlite2
"Ricerca yum pysqlite" mi dà il seguente:
Loaded plugins: fastestmirror
Excluding Packages in global exclude
list Finished
==== Matched: pysqlite ==== python-sqlite.x86_64 : Python bindings
for sqlite.
A proposito, ho il seguente directory: /home/myname/opt/lib/python2.6/sqlite3 e ci ho i seguenti file:
dbapi2.py dbapi2.pyc dbapi2.pyo
dump.py dump.pyc dump.pyo
__init__.py __init__.pyc __init__.pyo test
Se scriv "import unittest" e poi "importazione sqlite3 come sqlite" ottengo:
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
Grazie in anticipo.
Soluzione
È possibile utilizzare buildout per creare la versione localizzata del progetto. Questo installerà tutti i pacchetti necessari senza avere accesso sudo al server.
Per dare prova, effettuare le seguenti operazioni:
mkdir tmp
cd tmp
wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py
python bootstrap.py init
vim buildout.cfg
modifica buildout.cfg e sostituirlo con le seguenti:
[buildout]
parts = sqlite
[sqlite]
recipe = zc.recipe.egg
eggs = pysqlite
interpreter = mypython
Ora, eseguire ./bin/buildout per ricostruire il progetto. Questo scaricherà tutti i pacchetti necessari e creare un nuovo interprete per voi che è possibile utilizzare test che è possibile accedere a SQLite.
./bin/buildout
./bin/mypython
>>> import sqlite3
Questo vi dà un ambiente controllato che è possibile utilizzare per sviluppare all'interno. Per ulteriori informazioni su buildout, è possibile guardare i video di PyCon 2009 sulla setuptools, Distutils e Buildout.
Uova e Buildout implementazione in Python - Parte 1
Uova e Buildout implementazione in Python - Parte 2
Uova e Buildout implementazione in Python - Parte 3
In bocca al lupo
Altri suggerimenti
Python 2.6 (e un po 'prima) includono SQLite Python org biblioteca rif quindi non dovreste aver bisogno di fare questo. Basta importare ed eseguire
In genere, è necessario installare il modulo python sqlite
attraverso yum
, qualcosa di simile a:
yum install python-sqlite
e quindi modificare il codice di cambiare i riferimenti a sqlite2
sqlite3
.
A proposito, ogni volta che si leggono istruzioni per installare sqlite3-devel-3.n.n.n.rpm
, le parti non sono n
letterale; si suppone essere sostituiti con i numeri che specificano una versione del pacchetto rpm.