2012-07-25 11 views
6

Ho installato un LOT di pacchetti python per Python 2.6. Ora vorrei aggiornare Python alla 2.7. C'è un modo corretto o sistematico per aggiornare tutti i pacchetti installati?Qual è il modo corretto di aggiornare i pacchetti Python quando si aggiorna Python dalla 2.6 alla 2.7?

Nel mio sistema, tutti i pacchetti sono installati in /usr/lib64/python2.6/site-packages/ e /usr/lib/python2.6/site-packages/

Un modo ovvio è installare Python 2.7, scaricare tutti i sorgenti del pacchetto oi file egg e reinstallarli uno per uno. Tuttavia, alcuni pacchetti utili come numpy e scipy sono noti per l'installazione, specialmente quando è necessario installare dal sorgente. Mi aspetto che avrò bisogno di passare diverse ore per trovare i pacchetti e risolvere i problemi di installazione qui e là.

Chiunque ha suggerimenti per aggiornare sistematicamente i pacchetti installati?

risposta

4

Prima di tutto, si non si dovrebbe mai e poi mai e poi mai installare i pacchetti Python nella cartella della libreria di sistema con easy_install utilizzando sudo su qualsiasi sistema operativo.

http://jamiecurle.co.uk/blog/installing-pip-virtualenv-and-virtualenvwrapper-on-os-x/#comment-573429347

La procedura corretta sarebbe rendere la vostra procedura di installazione ripetibile. Esistono due soluzioni comunemente usate nel mondo Python. Queste soluzioni scaricare automaticamente le versioni corrette dei pacchetti Python da http://pypi.python.org

PIP

pip e requirements.txt http://www.pip-installer.org/en/latest/requirements.html all'interno virtualenv http://pypi.python.org/pypi/virtualenv

Buidout

Buildout, esempio dalla Plone CMS https://github.com/plone/Installers-UnifiedInstaller/blob/master/base_skeleton/versions.cfg

Buildout può anche configurare, rendere, creare installazioni di stile di installazione per pacchetti che necessitano di librerie native. Per esempio esistono soluzione per libxml2 + lxml

http://pypi.python.org/pypi/z3c.recipe.staticlxml/

(Nota: buildout non ha bisogno virtualenv come fa il suo isolamento dal Python sistema)

+1

In realtà, distribuzioni Fedora-based hanno tradizionalmente fatto un * molto * buon lavoro di separazione dei pacchetti per le diverse versioni; la maggior parte dei problemi sono con distro che gettano tutto in una directory e lasciano che le varie versioni di Python lo distruggano per la supremazia. –

+0

Mi sembra che pip non sia in grado di risolvere completamente il problema originale. Anche se pip potenzialmente risolve il problema delle dipendenze e rende ripetibile la procedura di installazione, l'aggiornamento a 2.7 (o qualsiasi versione più recente) richiederebbe manualmente "pipinstallare" tutti i pacchetti installati in 2.6 (o qualsiasi versione precedente). – user1036719

+1

Sì, ma se il tuo requirements.txt viene mantenuto per l'applicazione che esegue solo un comando di installazione di pip. O mi sta sfuggendo qualcosa? Ovviamente, se non hai informazioni sulla dipendenza solo nella tua testa, allora devi reinstallare tutti i pacchetti a mano. –

Problemi correlati