2010-11-16 19 views
5

Ich versuche, eine vorhandene Python 2.5 Pylons-Anwendung auf OS X Snow Leopard bereitzustellen.Erhalte einen PasteScript-Fehler, wenn ich versuche, eine vorhandene Pylons-App zu bedienen

Ich habe bereits Python 2.5 installiert und es als Standard Python Installation installiert, Paster installiert und installiert die Version von Pylons die App benötigt (0.9.6.1) sowie andere Eier ... aber wenn ich cd zu der Hauptordner und tun „Paster dienen development.ini“ ich folgendes erhalten:

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 

ich habe auf jeden Fall getan „easy_install PasteScript == 1.7.3“ und ich immer noch diese Fehlermeldung erhalten. Gibt es etwas wirklich Offensichtliches, das ich vermisse? Hilfe?

Vielen Dank im Voraus.

+0

Installierst du alles in ein virtualenv oder das System? –

+1

Ich benutze das System. Ich habe "defaults write com.apple.versioner.python Version 2.5" verwendet, um Python 2.5 als Standard für Snow Leopard zu setzen (anders als das vorinstallierte 2.6) – Sarah

Antwort

1

Wahrscheinlich haben Sie mehrere Python-Installationen auf Ihrem System. Der Befehl easy_install hat wahrscheinlich PasteScript in einem anderen Python-Interpreter installiert. Möglicherweise haben Sie einen bestimmten easy_install-2.5 Befehl, den Sie stattdessen für den Python 2.5-Interpreter verwenden sollten.

Es wird jedoch dringend empfohlen, virtualenv auf Ihrem Entwicklungssystem zu verwenden.

Virtualenv ermöglicht es Ihnen, eine Sandbox zu erstellen, die an einen bestimmten Python-Interpreter gebunden ist, und wo Sie spezifische Paketversionen lokal basierend auf jedem Projekt installieren können.

Weitere Informationen zur Verwendung von virtualenv mit Pylonen hier: http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox

1

Vielleicht ist dies zu einfach eine Antwort, aber ich würde versuchen, die spezifische Version easy_install-2.5 PasteScript==1.7.3 zu installieren. Siehe Easy install docs für Details.

0

bearbeiten erste Zeile in /usr/sbin/luci, und dann die Version von Python auf die folgenden Zeilen hinzufügen: in /usr/bin/paster

#!/usr/bin/python -Es 

bearbeiten erste Zeilen und Fügen Sie dann die Version von Python zur folgenden Zeile hinzu:

#!/usr/bin/python 
0

Ich habe das Fehler, auch wenn ich "paster --help" gemacht habe. PasteScript war in den Site-Paketen meines Virtual-Env und PasteScript erschien in Pip Freeze. Das Problem war, dass der PasteScript-Ordner in .dist-info endete. Ein anderes Ei namens distribute wurde installiert und es war an der Vorderseite meines sys.path. Es hatte eine ältere Version von pkg_resources, die nichts über ".dist-info" -Ordner wusste. Die fragliche pkg_resources-Logik befindet sich in der Funktion find_on_path. Sie können pkg_resources nach "dist-info" suchen. So fand "pkg_resources.get_distribution ('PasteScript')" in paste/script/command.py kein PasteScript, obwohl es installiert war. Um herauszufinden, welche pkg_resources verwendet wird, können Sie python ausführen und "import pkg_resources; pkg_resources drucken" ausführen. Die Deinstallation von "distribute" hat meinen aktuellen Fehler behoben (aber dann habe ich einen anderen Fehler gefunden).

Update: Ich war die neueste Ckan 2.6.2 installieren (auf April 2017) auf Ubuntu präzise (V12, ein bisschen alt, veröffentlicht in 2012-2014) (vollständig aktualisiert mit apt-get-Update, installiert über Vagrant Image Ubuntu/präzise64). Es ist kaputt. Die Verwendung von image ubuntu/trusty64 funktioniert einwandfrei.