2010-11-16 9 views
5

Estoy intentando servir una aplicación Python 2.5 Pylons existente en OS X Snow Leopard.Obteniendo un error de PasteScript cuando trato de servir una aplicación existente de Pylons

Ya instalé Python 2.5 y lo configuré como la instalación predeterminada de Python, instalé el pasteur e instalé la versión de Pylons que la aplicación necesita (0.9.6.1) y otros huevos ... pero cuando copio a la carpeta principal y hacer "parche servir development.ini" me sale el siguiente:

File "/usr/local/bin/paster", line 5, in <module> 
    from pkg_resources import load_entry_point 

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 2603, in <module> 

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 666, in require 

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 565, in resolve 

pkg_resources.DistributionNotFound: PasteScript==1.7.3 

definitivamente he hecho "easy_install == PasteScript 1.7.3" y sigo teniendo este error. ¿Hay algo realmente obvio que me estoy perdiendo? ¿Ayuda?

Gracias de antemano.

+0

¿Está instalando todo en un virtualenv o el sistema? –

+1

Estoy usando el sistema. Utilicé "defaults write com.apple.versioner.python Version 2.5" para configurar Python 2.5 como mi predeterminado para Snow Leopard (que no sea el 2.6 preinstalado) – Sarah

Respuesta

1

Probablemente tenga varias instalaciones de Python en su sistema. El comando easy_install probablemente instaló PasteScript en un intérprete de Python diferente. Puede tener un comando específico easy_install-2.5 que debe usar en su lugar para el intérprete de Python 2.5.

Sin embargo, se recomienda enfáticamente utilizar virtualenv en su sistema de desarrollo.

Virtualenv le permite crear un entorno limitado vinculado a un intérprete específico de Python, y donde puede instalar versiones específicas de paquetes localmente en función de cada proyecto.

Más información sobre el uso virtualenv con los pilones aquí: http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox

1

Quizás esta es una respuesta demasiado simple, pero intentaría instalar la versión específica easy_install-2.5 PasteScript==1.7.3 Ver Easy install docs para más detalles.

0

Editar primera línea en /usr/sbin/luci, y luego añadir la versión de Python para la línea de abajo:

#!/usr/bin/python -Es 

Editar primera línea en /usr/bin/paster y luego agregue la versión de python a la siguiente línea:

#!/usr/bin/python 
0

Compre este error incluso cuando hice "paster --help". PasteScript estaba en el sitio -paquetes de mi virtual-env y PasteScript apareció en la congelación de pip. El problema era que la carpeta PasteScript terminaba en .dist-info. Se instaló otro huevo llamado distribuir y estaba al frente de mi sys.path. Tenía una versión anterior de pkg_resources que no conocía las carpetas de huevo ".dist-info". La lógica pkg_resources en cuestión está en la función find_on_path. Puede buscar pkg_resources para "dist-info". Por lo tanto, "pkg_resources.get_distribution ('PasteScript')" en paste/script/command.py no encontró ningún PasteScript aunque estaba instalado. Para encontrar qué pkg_resources se está utilizando, puede ejecutar python e ir a "import pkg_resources; print pkg_resources". Desinstalar "distribuir" solucionó mi error actual (pero luego pulsé otro error).

Actualización: Estaba instalando el último ckan 2.6.2 (en abril de 2017) en Ubuntu preciso (v12, un poco viejo, lanzado en 2012-2014) (totalmente actualizado con apt-get update, instalado vía vagrant image ubuntu/precise64). Está roto. El uso de la imagen ubuntu/trusty64 funciona perfectamente.

Cuestiones relacionadas