2011-01-29 5 views
5

Si estoy aprendiendo desarrollo de Python en OSX (Snow Leopard), ¿cómo debo administrar mejor mis paquetes de python?consejos de sentido común sobre la administración de paquetes python en OSX para principiantes

Estoy muy entusiasmado con la gran cantidad de grandes paquetes de pitón disponibles. Me encantaría comenzar a aprenderlos, pero la administración de paquetes me ha confundido por completo. Claramente no tengo idea de lo que estoy haciendo. Veo muchas preguntas sobre Stack Overflow que abordan la administración de paquetes, y la gente las responde con frecuencia diciendo "¿Por qué no usa x? Mire qué fácil es en esta sola línea que copié de mi caparazón"

$ x install something 

que es una gran respuesta hasta x falla al manejar algunas dependencias específicas o no puede manejar empaquetar y . Esto es lo que ya he intentado:

  1. Empecé simplemente instalando cosas con easy_install.
  2. Pronto descubrí que algunos paquetes importantes tenían dependencias faltantes (PIL) , así que busqué y descubrí MacPorts.
  3. Empecé a usar MacPorts y todas mis variables de entorno se volvieron realmente confusas, así que aprendí bash para reconfigurar PATH, PYTHONPATH y sys.path para que las cosas funcionen (y para que mi ventana de terminal se vea dulce). MacPorts parecía genial por un tiempo.
  4. Pero entonces me tiene confundido acerca de qué versión de los diferentes módulos que estaba usando, y me encontré con más problemas de dependencia (GDAL) ...
  5. A continuación, varias personas muy inteligentes recomienda encarecidamente me cambio a Homebrew. Así que desinstalé MacPorts e instalé Homebrew.
  6. Ahora que tengo Homebrew, parece que no puedo instalar mucho, porque no sé cómo crear Formula para la mayoría de los paquetes de Python que quiero usar. Si un paquete se encuentra en el listado en el pypi, no sé si realmente debería usar Homebrew, o simplemente averiguar cómo configurar easy_install para instalar en los directorios de Homebrew. Y todavía no sé cómo debo abordar las dependencias que faltan. ¿Tal vez hay algún depósito secreto de Fórmula relacionada con Python? o una forma sencilla de convertir portfiles en Fórmula?

Sé que la respuesta correcta podría depender de lo que intento instalar.Estoy tratando de instalar conjuntos de paquetes que permiten a mí:

  1. juego alrededor y automatizar todo con el pitón
    • appscript
    • PIL
    • pygame
  2. hacer trabajos relacionados con SIG en Python
    • gdal
    • bien formada
    • PostGIS
    • scipy
  3. explorar las posibilidades maravillosas de aplicaciones web
    • Django
    • google-app-engine

I Estoy completamente dispuesto a borrar todo de mi máquina, que ahora debe estar un poco abarrotada de trozos de paquetes. Si debería aprender virtualenv, o simplemente aprender más sobre el proceso básico de verificación de dependencias e instalarlas yo mismo, me complace hacerlo. Si yo solo profundizo en Homebrew, me alegra hacerlo también. ¿Cómo debo lidiar con estos problemas, que a menudo me impiden hacer lo que realmente quiero hacer (hacer cosas buenas con Python)?

Respuesta

3

En mi opinión, la mejor manera de manejar los paquetes de Python es tener un conjunto de Python instalaciones separadas del sistema Python, uno para cada versión que necesita. De esta manera no contaminé el python principal con versiones anteriores de paquetes, y puedo eliminarlos y volver a instalarlos sin que ninguno de mis proyectos tenga problemas.

Detalles:

En OS X, usando las versiones macports están bien. Lo mismo es probablemente cierto para homebrew, aunque nunca lo usé. (En Linuxes instalo Python desde el código fuente en/opt/pythonxx /, por ejemplo/opt/python25 /,/opt/python26 /,/opt/python27 y/opt/python31.)

que luego nunca se instalar cualquier paquete en estos pitones, con la excepción de virtualenv, distribute y pip, que se instala en todos ellos. Cuando quiero instalar un paquete para un proyecto, hago un virtualenv para ese proyecto con la versión de Python que utilizo para ello:

$ cd /home/projects 
$ /opt/python27/bin/virtualenv acoolproject 
$ cd acoolproject 
$ ./bin/pip install ThepackageIneed. 

al instalar todos los proyectos de dependencias por separado, a evitar problemas de dependencia y conflictos de versión y confusión de la versión.

Puede activar y desactivar los entornos con virtualenv, tiendo no volver a hacer eso, yo uso el ejecutable python explícitamente en su lugar:

$ ./bin/python main.py 

o

$ /home7projects/acoolproject/bin/python 

Si necesito cosas que se pueden Simplemente instalo con pip, como Plone, o nginx o barniz, utilizo zc.buildout para hacer una configuración de entorno replicable, zc.buildout también se ejecutará de forma aislada, por lo que no se instalarán paquetes en las pitones principales.

0

Si está utilizando Homebrew, probablemente desee utilizar pip para instalar paquetes de Python. pip se puede instalar a través de Homebrew, pero Homebrew no incluye fórmulas para otros paquetes de Python. Pero es bastante fácil de instalar paquetes utilizando pip - tan simple como

$ pip install <package> 

(El nombre del paquete se puede encontrar en PyPI.) Si ha instalado PIP a través de Homebrew, eso es todo lo que necesita hacer.

Cuestiones relacionadas