Estoy empezando a aprender python y me encanta. Trabajo en una Mac principalmente, así como en Linux. Estoy descubriendo que en Linux (Ubuntu 9.04 principalmente) cuando instalo un módulo de Python usando apt-get, funciona bien. Puedo importarlo sin problemas.
En Mac, estoy acostumbrado a usar Macports para instalar todas las cosas de Unixy. Sin embargo, estoy descubriendo que la mayoría de los módulos de Python que instalo con él no están siendo vistos por Python. He pasado algún tiempo jugando con la configuración de RUTA y usando python_select. Nada ha funcionado realmente y en este punto no estoy entendiendo realmente, en cambio solo estoy hurgando.
Tengo la impresión de que Macports no es universalmente amado por la gestión de módulos de Python. Me gustaría comenzar de nuevo utilizando un enfoque más "aceptado" (si esa es la palabra correcta).
Entonces, me preguntaba, ¿cuál es el método que usan los desarrolladores de Mac Python para administrar sus módulos?
Preguntas extra:
¿Usas el pitón de Apple o alguna otra versión? ¿Compila todo desde la fuente o hay un administrador de paquetes que funciona bien (Fink?).
Respuestas:
La forma más popular de administrar paquetes de Python (si no está usando el administrador de paquetes de su sistema) es usar setuptools y easy_install. Probablemente ya esté instalado en su sistema. Úselo así:
easy_install utiliza el índice del paquete Python, que es un recurso increíble para los desarrolladores de python. Eche un vistazo para ver qué paquetes están disponibles.
Una mejor opción es pip , que está ganando tracción, ya que intenta solucionar muchos de los problemas asociados con easy_install. Pip usa el mismo repositorio de paquetes que easy_install, simplemente funciona mejor. Realmente el único uso de tiempo necesario para usar easy_install es para este comando:
Después de eso, use:
En algún momento probablemente querrás aprender un poco sobre virtualenv . Si realiza mucho desarrollo de Python en proyectos con requisitos de paquetes conflictivos, virtualenv es una bendición. Le permitirá tener versiones completamente diferentes de varios paquetes y cambiar entre ellos fácilmente según sus necesidades.
Con respecto a qué python usar, seguir con el python de Apple le dará menos dolores de cabeza, pero si necesita una versión más nueva (Leopard es 2.5.1, creo), optaría por el macports python 2.6.
fuente
Su pregunta ya tiene tres años y hay algunos detalles que no están cubiertos en otras respuestas:
La mayoría de las personas que conozco usan HomeBrew o MacPorts , prefiero MacPorts debido a su corte limpio de lo que es un entorno predeterminado de Mac OS X y mi configuración de desarrollo. Simplemente mueva su carpeta / opt y pruebe sus paquetes con un entorno Python de usuario normal
MacPorts solo es portátil dentro de Mac, pero con easy_install o pip aprenderá cómo configurar su entorno en cualquier plataforma (Win / Mac / Linux / Bsd ...). Además, siempre estará más actualizado y con más paquetes.
Personalmente, dejo que MacPorts maneje mis módulos de Python para mantener todo actualizado. Al igual que cualquier otro administrador de paquetes de alto nivel (es decir, apt-get), es mucho mejor para el trabajo pesado de módulos con muchas dependencias binarias. No hay forma de que construya mis enlaces Qt (PySide) con easy_install o pip. Qt es enorme y lleva mucho tiempo compilarlo. Tan pronto como desee un paquete de Python que necesite una biblioteca utilizada por programas que no sean de Python, intente evitar easy_install o pip
En algún momento, encontrará que faltan algunos paquetes dentro de MacPorts. No creo que MacPorts te dé alguna vez toda la CheeseShop . Por ejemplo, recientemente necesitaba el módulo Elixir , pero MacPorts solo ofrece py25-elixir y py26-elixir, sin versión py27. En casos como estos tienes:
(asegúrese de escribir siempre pip- (versión))
Eso construirá una biblioteca Python adicional en su directorio de inicio. Sí, Python funcionará con más de una ubicación de biblioteca: una controlada por MacPorts y una local de usuario para todo lo que falta en MacPorts.
Ahora observe que estoy a favor de pip sobre easy_install. Hay una buena razón por la que debe evitar las herramientas de configuración y easy_install. Aquí hay una buena explicación y trato de mantenerme alejado de ellos. Una característica muy útil de pip es darle una lista de todos los módulos (junto con sus versiones) que instaló con MacPorts, easy_install y pip:
Si ya comenzó a usar easy_install, no se preocupe, pip puede reconocer todo lo que ya ha hecho con easy_install e incluso actualizar los paquetes instalados con él.
Si es desarrollador, esté atento a virtualenv para controlar diferentes configuraciones y combinaciones de versiones de módulos. Otras respuestas ya lo mencionan, lo que no se menciona hasta ahora es el módulo Tox , una herramienta para probar que su paquete se instala correctamente con diferentes versiones de Python.
Aunque generalmente no tengo conflictos de versión, me gusta tener virtualenv para configurar un entorno limpio y obtener una visión clara de las dependencias de mis paquetes. De esa manera nunca olvido ninguna dependencia en mi setup.py
Si opta por MacPorts, tenga en cuenta que ya no se seleccionan varias versiones del mismo paquete, como el antiguo estilo Debian con un paquete adicional python_select (todavía está allí por compatibilidad). Ahora tiene el comando de selección para elegir qué versión de Python se utilizará (incluso puede seleccionar las instaladas por Apple):
Agregue tox encima y sus programas deberían ser realmente portátiles
fuente
Por favor, véase el entorno de desarrollo Python OS X . La mejor manera es usar MacPorts . Descargue e instale MacPorts, luego instale Python a través de MacPorts escribiendo los siguientes comandos en la Terminal:
O
Use el primer conjunto de comandos para instalar Python 2.6 y el segundo conjunto para instalar Python 3.0. Luego use:
O
En los comandos anteriores, reemplace packagename con el nombre del paquete, por ejemplo:
Estos comandos instalarán automáticamente el paquete (y sus dependencias) para la versión de Python dada.
Para obtener una lista completa de los paquetes disponibles para Python, escriba:
O
El comando que use dependerá de la versión de Python que elija instalar.
fuente
sudo python_select python30
ha sido reemplazado porsudo port select --set python python30
.Utilizo MacPorts para instalar Python y los módulos de terceros a los que MacPorts rastrea
/opt/local
e instalo los módulos instalados manualmente (aquellos que no están en el repositorio de MacPorts)/usr/local
, y esto nunca ha causado ningún problema. Creo que puede estar confundido sobre el uso de ciertos scripts MacPorts y variables de entorno.MacPorts
python_select
se usa para seleccionar la versión "actual" de Python, pero no tiene nada que ver con los módulos. Esto le permite, por ejemplo, instalar Python 2.5 y Python 2.6 usando MacPorts, y cambiar entre instalaciones.Las
$PATH
variables de entorno no afectan qué módulos de Python se cargan.$PYTHONPATH
es lo que buscas.$PYTHONPATH
debe apuntar a directorios que contengan módulos de Python que desee cargar. En mi caso, mi$PYTHONPATH
variable contiene/usr/local/lib/python26/site-packages
. Si usa Python de MacPorts, configura los otros directorios adecuados para usted, por lo que solo necesita agregar rutas adicionales$PYTHONPATH
. Pero, de nuevo,$PATH
no se usa en absoluto cuando Python busca los módulos que ha instalado.$PATH
se usa para buscar ejecutables, por lo que si instala Python de MacPorts, asegúrese de que/opt/local/bin
esté en su$PATH
.fuente
No hay nada de malo en usar una instalación de MacPorts Python. Si está instalando módulos de Python desde MacPorts pero luego no los ve, eso probablemente significa que no está invocando el Python de MacPorts en el que instaló. En un shell de terminal, puede usar rutas absolutas para invocar las diversas pitones que se pueden instalar. Por ejemplo:
Para obtener el pitón correcto de forma predeterminada, es necesario asegurarse de que su shell $ PATH esté configurado correctamente para garantizar que se encuentre primero el ejecutable correcto. Otra solución es definir alias de shell para las diferentes pitones.
Una instalación de python.org (MacPython) también está bien, como han sugerido otros.
easy_install
puede ayudar, pero, una vez más, debido a que cada instancia de Python puede tener su propioeasy_install
comando, asegúrese de invocar la correctaeasy_install
.fuente
Si usa Python desde MacPorts, tiene su propia instalación fácil ubicada en: /opt/local/bin/easy_install-2.6 (para py26, eso es). No es lo mismo que simplemente llamar a easy_install directamente, incluso si usó python_select para cambiar su comando predeterminado de python.
fuente
sudo port install py2.6-pip
conseguir pip.¿Has buscado en easy_install ? No sincronizará sus macports ni nada de eso, pero descargará automáticamente el último paquete y todas las dependencias necesarias, es decir
para el paquete de prueba de la unidad de nariz, o
para el
trac
rastreador de errores.También hay un poco más de información en su página EasyInstall .
fuente
Para las instalaciones de MacPython, encontré una solución efectiva para solucionar el problema con setuptools (easy_install) en esta publicación de blog:
http://droidism.com/getting-running-with-django-and-macpython-26-on-leopard
Un consejo útil incluye descubrir qué versión de python está activa en la terminal:
fuente
Cuando instala módulos con MacPorts, no entra en la versión de Python de Apple. En cambio, esos módulos se instalan en la versión MacPorts de Python seleccionada.
Puede cambiar qué versión de Python se usa de manera predeterminada utilizando un puerto mac llamado python_select . instrucciones aquí .
Además, hay easy_install . Que utilizará python para instalar módulos de python.
fuente
python_select
ahora está en desuso, vea las respuestas más nuevas.Es posible que ya haya
pip3
preinstalado, ¡así que pruébelo!fuente
Con respecto a qué versión de python usar, Mac OS generalmente incluye una versión anterior de python. Es una buena idea actualizar a una versión más nueva. Puede descargar un .dmg desde http://www.python.org/download/ . Si haces eso, recuerda actualizar la ruta. Puede encontrar los comandos exactos aquí http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/
fuente
Utilizo easy_install con Python de Apple, y funciona de maravilla .
fuente
Instale directamente uno de los paquetes fink (Django 1.6 a partir de 2013-noviembre)
O cree usted mismo un virtualenv:
O use fink django más cualquier otro paquete instalado pip en un virtualenv
fuente