2012-07-25 11 views
6

He instalado MUCHO de paquetes de Python para Python 2.6. Ahora me gustaría actualizar Python a 2.7. ¿Existe una forma adecuada o sistemática de actualizar todos los paquetes instalados?¿Cuál es la forma correcta de actualizar los paquetes de Python al actualizar Python de 2.6 a 2.7?

En mi sistema, todos los paquetes se instalan en /usr/lib64/python2.6/site-packages/ y /usr/lib/python2.6/site-packages/

Una manera obvia es instalar Python 2.7, descargar todas las fuentes del paquete o los archivos egg, y reinstalarlos uno por uno. Sin embargo, algunos paquetes útiles como numpy y scipy son notorios para la instalación, especialmente cuando uno necesita instalar desde el origen. Espero que necesite pasar varias horas para encontrar los paquetes y resolver los problemas de instalación aquí y allá.

¿Alguien tiene alguna sugerencia para actualizar sistemáticamente los paquetes instalados?

Respuesta

4

En primer lugar, usted nunca debe nunca instalar paquetes de Python en la carpeta de la biblioteca del sistema con easy_install usando sudo en cualquier sistema operativo.

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

El procedimiento correcto sería hacer que su procedimiento de instalación repetible. Existen dos soluciones de uso común en el mundo de Python. Estas soluciones descarga automáticamente las versiones correctas de los paquetes de Python desde http://pypi.python.org

PIP

PIP y requirements.txt http://www.pip-installer.org/en/latest/requirements.html dentro virtualenv http://pypi.python.org/pypi/virtualenv

Buidout

Buildout, ejemplo de CMS https://github.com/plone/Installers-UnifiedInstaller/blob/master/base_skeleton/versions.cfg

Buildout también puede configurar, crear y realizar instalaciones de estilo de instalación para paquetes que necesitan bibliotecas nativas. Por ejemplo, existen solución para libxml2 + lxml

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

(Nota: buildout no necesita virtualenv como lo hace su propio aislamiento del sistema Python)

+1

En realidad, distribuciones basadas en Fedora han hecho tradicionalmente a * muy * buen trabajo de separar paquetes para las diferentes versiones; la mayoría de los problemas son con distribuciones que lo incluyen todo en un solo directorio y permiten que las distintas versiones de Python lo dominen por su supremacía. –

+0

Me parece que pip no puede resolver completamente el problema original. Aunque pip resuelve potencialmente el problema de dependencia y hace que el procedimiento de instalación sea repetible, la actualización a 2.7 (o cualquier versión más nueva) necesitaría manualmente "instalar" todos los paquetes que se instalaron en 2.6 (o cualquier versión anterior). – user1036719

+1

Sí, pero si su requirements.txt se mantiene para su aplicación que ejecuta solo un comando de instalación de pip. ¿O me estoy perdiendo algo? Por supuesto, si no tiene información de dependencia solo en su cabeza, entonces necesita reinstalar todos los paquetes a mano. –

Cuestiones relacionadas