Installare versioni specifiche dei pacchetti con pip

Sto cercando di installare la versione 1.2.2 dell'adattatore MySQL_python, usando un virtualenv fresco creato con l'opzione --no-site-packages. La versione corrente mostrata in PyPi è 1.2.3. C'è un modo per installare la versione precedente? Ho trovato un articolo che afferma che questo dovrebbe farlo:

pip install MySQL_python==1.2.2

Una volta installato, tuttavia, mostra ancora MySQL_python-1.2.3-py2.6.egg-info nei pacchetti del sito. È un problema specifico di questo pacchetto o sto facendo qualcosa di sbagliato?

Soluzione

In primo luogo, vedo due problemi con quello che stai cercando di fare. Dal momento che hai già una versione installata, dovresti disinstallare l'attuale driver esistente o usare pip install -I MySQL_python==1.2.2.

Tuttavia, scoprirete presto che questo non funziona. Se guardi il log di installazione di pip, o se fai un pip install -Iv MySQL_python==1.2.2 troverai che il link URL di PyPI non funziona per MySQL_python v1.2.2. Puoi verificarlo qui: http://pypi.python.org/pypi/MySQL-python/1.2.2

Il link per il download è 404 e i link dell'URL di fallback vengono reindirizzati all'infinito a causa del recente aggiornamento di sourceforge.net e dell'URL stantio di PyPI.

Quindi, per installare correttamente il driver, è possibile seguire questi passaggi:

pip uninstall MySQL_python
pip install -Iv http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz/download
Commentari (6)

Puoi anche usare un intervallo di versioni con il comando pip install. Qualcosa del genere:


pip install 'stevedore>=1.3.0,
Commentari (6)

Credo che se avete già un pacchetto installato, pip non lo sovrascriverà con un'altra versione. Usate -I per ignorare le versioni precedenti.

Commentari (3)