[Python] Mysqldb in python 2.6

Daniele Varrazzo piro a develer.com
Ven 9 Lug 2010 13:08:14 CEST


On Fri, 09 Jul 2010 12:09:55 +0200, Marco Mariani
<marco.mariani a prometeia.it> wrote:
> On Fri, 2010-07-09 at 11:53 +0200, Vittorio Zuccala' wrote:

>> Cpan è un sito che oltre a tenere traccia di TUTTI i moduli perl con
>> relativo codice, pagine di documentazione veramente ben fatte ti
>> permette su win/linux/freebsd/macosx di scrivere
>> 
>> cpan> install DBD::mysql
>> ed il sistema controlla le dipendenze, scarica il modulo ed eventuali
>> dipendenze, scompatta ed installa.
>> E questo, continuo a dire, manca in python.
> 
> Guarda cosa fa il comando "easy_install python-mysql". O i vari "pip",
> "distribute", etc.

Già. Vittorio, pypi non è solo un sito che fa da directory: ci sono
strumenti interattivi che ti permettono di installare package con un solo
comando, e lo fanno interagendo con pypi, tenendo traccia delle dipendenze
e tutto quello che chiedi. Gli strumenti per interagirvi sono quelli che ti
dice Marco.

Il problema con windows, che è il motivo per cui su sourceforge trovi
installazioni per windows per python 2.3, 2.4, 2.5... è che tipicamente gli
utenti windows non hanno gli strumenti per compilare le estensioni da sè.
Se uno ha questi strumenti (che sono open, vedi il mio messaggio di prima)
può anche utilizzare il pacchetto dei sorgenti che il modulo mette sempre a
disposizione, oppure uesare easy_install.

Anche senza l'infrastruttura pypi, comunque, compilare un'estensione non è
difficile: basta scaricare la versione sorgente (quella che c'è qui:
http://sourceforge.net/projects/mysql-python/), espanderla e usare il
comando "python setup.py install". Se l'estensione contiene codice C hai
bisogno di un compilatore, e se usa librerie di terze parti ovviamente
anche di quelle, ma direi che non è rocket science. Nota che, una volta che
riesci a compilare la tua estensione, puoi usare il comando "python
setup.py bdist_wininst" che crea un pacchetto di installazione per windows
(specifico per una certa versione di python se contiene estensioni in C,
altrimenti generico) che ti consente di installare la stessa libreria con
un doppio click e senza bisogno di compilatore. Se lavori ad un progetto
per cui hai bisogno della libreria su diversi computer questo potrebbe
essere *molto* utile.


> Rispetto a CPAN, PyPI avra' qualche mancanza, in particolare perche' e'
> distribuito e la disponibilita' dei pacchetti dipende dall'accesso ai
> singoli siti. Ma fa quello che chiedi tu, e altro.

Veramente pypi non richiede l'accesso ai siti esterni: è autosufficiente.
Io ho un'estensione di cui ho il progetto con il repository su Google Code
(http://code.google.com/p/py-setproctitle/) ma i pacchetti da scaricare
sono *solo* su pypi. Per aggiornarli uso un comando tipo "setup.py sdist
upload" e i pacchetti vengono caricati direttamente su pypi, pronti per
easy_install. (...E se ho una nuova versione: "python setup.py register". è
effettivamente uno spettacolo :D).


-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python