¿Cómo configuro un directorio de biblioteca de python local / PYTHONPATH?

En el proceso de intentar escribir un script de Python que usa PIL hoy, descubrí que no parece que lo tenga en mi máquina local (OS X 10.5.8, instalación predeterminada de Python 2.5).

Así que corro:

easy_install --prefix=/usr/local/python/ pil 

y se queja un poco acerca de /usr/local/python/lib/python2.5/site-packages que aún no existen, así que lo creo, lo bash de nuevo y obtengo esto:

ERROR EN LA PRUEBA: /usr/local/python//lib/python2.5/site-packages NO admite errores de archivos .pth: directorio de instalación incorrecto o PYTHONPATH

Está intentando instalar un paquete en un directorio que no está en PYTHONPATH y Python no lee los archivos “.pth” de. El directorio de instalación que especificó (a través de –install-dir, –prefix o la configuración predeterminada de distutils) fue:

 /usr/local/python//lib/python2.5/site-packages 

y su variable de entorno PYTHONPATH actualmente contiene:

 '' 

De acuerdo, bastante bien, no había hecho nada para marcar el camino. Así que agrego una línea rápida a ~ / .bash_profile:

PYTHONPATH = “$ PYTHONPATH: /usr/local/python/lib/python2.5”

y la source , y vuelva a intentarlo.

Mismo mensaje de error.

Esto es algo curioso, dado que PYTHONPATH está claramente establecido; Puedo hacerme echo $PYTHONPATH y volver :/usr/local/python/lib/python2.5 . Decidí ver cómo se veía el camino de inclusión desde adentro:

 import sys print "\n".join(sys.path) 

cuyos rendimientos:

/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 /System/Library/Frameworks/Python.framework /Versions/2.5/lib/python2.5/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac /System/Library/Frameworks/Python.framework/Versions /2.5/lib/python2.5/plat-mac/lib-scriptpackages /System/Library/Framework/Python.framework/Versions/2.5/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.5 /lib/python2.5/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload /Library/Python/2.5/site-packages / System / Library / Frameworks /Python.framework/Versions/2.5/Extras/lib/python/PyObjC

de los cuales /usr/local/python/yadda/yadda está notablemente perdido.

No estoy seguro de lo que se supone que debo hacer aquí. ¿Cómo puedo hacer que Python reconozca esta ubicación como una ruta de inclusión?

ACTUALIZAR

Como sugirió Sven Marnach, estaba descuidando la exportación de PYTHONPATH. He corregido ese problema y ahora veo que aparece cuando sys.path desde Python. Sin embargo, aún recibí el mensaje de error TEST FAILED que mencioné anteriormente, solo con mi nueva variable de entorno PYTHONPATH.

Entonces, intenté cambiarlo de /usr/local/python/lib/python2.5 a /usr/local/python/lib/python2.5/site-packages , exportando y ejecutando nuevamente el mismo comando easy_install . Esto lleva a un resultado totalmente nuevo que al principio parecía exitoso (pero no lo es):

 Creating /usr/local/python/lib/python2.5/site-packages/site.py Searching for pil Reading http://pypi.python.org/simple/pil/ Reading http://www.pythonware.com/products/pil Reading http://effbot.org/zone/pil-changes-115.htm Reading http://effbot.org/downloads/#Imaging Best match: PIL 1.1.7 Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz Processing PIL-1.1.7.tar.gz Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy --- using frameworks at /System/Library/Frameworks [snipped: compiler warnings] -------------------------------------------------------------------- PIL 1.1.7 SETUP SUMMARY -------------------------------------------------------------------- version 1.1.7 platform darwin 2.5.1 (r251:54863, Sep 1 2010, 22:03:14) [GCC 4.0.1 (Apple Inc. build 5465)] -------------------------------------------------------------------- --- TKINTER support available --- JPEG support available --- ZLIB (PNG/ZIP) support available *** FREETYPE2 support not available *** LITTLECMS support not available -------------------------------------------------------------------- To add a missing option, make sure you have the required library, and set the corresponding ROOT variable in the setup.py script. To check the build, run the selftest.py script. zip_safe flag not set; analyzing archive contents... Image: module references __file__ No eggs found in /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy (setup script problem?) 

Nuevamente, esto se ve bien, pero cuando voy a ejecutar mi script:

Rastreo (llamadas recientes más última):
Archivo “checkerboard.py”, línea 1, en Import Image, ImageDraw ImportError: No hay módulo llamado Image

Cuando reviso lo que está ahora bajo /usr/local/python/ usando find . , Yo obtengo:

./lib ./lib/python2.5 ./lib/python2.5/site-packages ./lib/python2.5/site-packages/site.py ./lib/python2.5/site-packages/site. pyc

Entonces … nada de aspecto de módulo (supongo que site.py y site.pyc son metadatos o scripts de ayuda). ¿Dónde fue la instalación?

Tomo nota de esto:

Para verificar la comstackción, ejecute el script selftest.py.

Pero realmente no sé qué es eso.

Y también noté el mensaje “No se encontraron huevos”. ¿Alguno de estos consejos?

Está utilizando el Python 2.5 suministrado por Apple en OS X; es una estructura de framework y, de manera predeterminada, usa /Library/Python/2.5/site-packages como la ubicación de los paquetes instalados, no /usr/local . Normalmente, no es necesario que especifique --prefix con una comstackción de OS X framework. También tenga en cuenta que las setuptools (instalación easy_install ) suministradas por Apple con OS X 10.5 también son bastante antiguas, al igual que la versión de Python.

Dicho esto, instalar PIL completamente y correctamente en OS X, especialmente OS X 10.5 no es particularmente simple. Busque en los archivos o en otros lugares para obtener consejos y / o paquetes binarios. En particular, si planea usar otros módulos como MySQL o Django, mi recomendación es instalar todo (Python y PIL) usando un administrador de paquetes como MacPorts .

¿Por qué especificaste --prefix en tu invocación de easy_install ? ¿Lo intentaste solo?

 sudo easy_install pil 

Si solo está intentando instalar PIL en la ubicación predeterminada, creo que easy_install podría encontrar la ruta correcta. (Claramente, /usr/local/python no lo es …)

EDITAR : Alguien rechazó esta respuesta, tal vez porque era demasiado concisa. Eso es lo que obtengo por intentar publicar una respuesta desde mi teléfono celular, supongo. Pero la esencia de esto es perfectamente válida, en mi humilde opinión: si estás usando --prefix para especificar una ubicación de instalación personalizada con easy_install , estás como ‘haciéndolo mal’. Puede ser posible hacer que esto funcione, pero la documentación de instalación easy_install tiene una sección sobre ubicaciones de instalación personalizadas que ni siquiera menciona esto como una posibilidad, excepto como una pequeña modificación de la opción de python virtual . Sugeriría seguir las instrucciones de OS X si desea instalar en una ubicación personalizada en una Mac, --prefix simplemente no parece ser la herramienta adecuada para el trabajo.