2010-11-16 36 views
5

J'essaie de diffuser une application Python 2.5 Pylons existante sous OS X Snow Leopard.Obtention d'une erreur PasteScript lorsque j'essaie de diffuser une application Pylons existante

J'ai déjà installé Python 2.5 et l'ai défini comme l'installation par défaut de Python, installé paster, et installé la version de Pylons dont l'application a besoin (0.9.6.1) ainsi que d'autres ... mais quand je cd le dossier principal et faire « Paster servirai development.ini » Je reçois le texte suivant:

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 

Je certainement fait « easy_install PasteScript == 1.7.3 » et je reçois toujours cette erreur. Y a-t-il quelque chose de vraiment évident qui me manque? Aidez-moi?

Merci d'avance.

+0

Vous installez tout dans un virtualenv ou le système? –

+1

J'utilise le système. J'ai utilisé "par défaut écrire com.apple.versioner.python Version 2.5" pour définir Python 2.5 comme mon défaut pour Snow Leopard (autre que le 2.6 pré-installé) – Sarah

Répondre

1

Vous avez probablement plusieurs installations Python sur votre système. La commande easy_install a probablement installé PasteScript dans un autre interpréteur Python. Vous pouvez avoir une commande spécifique easy_install-2.5 que vous devez utiliser à la place pour l'interpréteur Python 2.5. Toutefois, l'utilisation de virtualenv sur votre système de développement est fortement recommandée. Virtualenv vous permet de créer un bac à sable lié à un interpréteur Python spécifique, et où vous pouvez installer localement des versions de paquetages spécifiques en fonction de chaque projet.

Plus d'informations sur l'utilisation virtualenv avec Pylons ici: http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox

1

Peut-être que c'est une réponse trop simple, mais je voudrais essayer d'installer à la version spécifique easy_install-2.5 PasteScript==1.7.3 Voir Easy install docs pour plus de détails.

0

Modifier première ligne /usr/sbin/luci, puis ajoutez la version de python à la ligne ci-dessous:

#!/usr/bin/python -Es 

Modifier première ligne /usr/bin/paster et puis ajoutez la version de python à la ligne suivante:

#!/usr/bin/python 
0

J'ai reçu ceci erreur même quand j'ai fait "paster --help". PasteScript était dans les paquets de site de mon environnement virtuel et PasteScript apparaissait dans le gel de pip. Le problème était que le dossier PasteScript se terminait par .dist-info. Un autre oeuf appelé distribuer a été installé et il était à l'avant de mon sys.path. Il avait une ancienne version de pkg_resources qui ne connaissait pas les dossiers ".dist-info". La logique pkg_resources en question est dans la fonction find_on_path. Vous pouvez rechercher pkg_resources pour "dist-info". Donc "pkg_resources.get_distribution ('PasteScript')" dans paste/script/command.py n'a pas trouvé de PasteScript même s'il a été installé. Pour trouver quelle pkg_resources est utilisée, vous pouvez lancer python et aller sur "import pkg_resources; print pkg_resources". La désinstallation de "distribuer" a corrigé mon erreur actuelle (mais j'ai ensuite frappé une autre erreur).

Mise à jour: J'installais le dernier ckan 2.6.2 (sur avr 2017) sur Ubuntu précis (v12, un peu vieux, sorti en 2012-2014) (entièrement mis à jour avec apt-get, installé via l'image vagabonde ubuntu/précis64). Elle est cassée. L'utilisation de l'image ubuntu/trusty64 fonctionne parfaitement.