2010-05-01 5 views
3

J'ai ajouté cette ligne à mon .bashrc (Ubuntu 9.10):Problème avec pythonpath? "Python2.5: ne peut pas ouvrir le fichier 'dev_appserver.py': [Errno 2] Aucun fichier ou répertoire"

export PYTHONPATH=/opt/google_appengine/ 

Et puis J'ai couru le dev_appserver par python2.5 sur Ubuntu comme ceci:

$ python2.5 dev_appserver.py guestbook/ 
python2.5: can't open file 'dev_appserver.py': [Errno 2] No such file or directory 

comme vous pouvez le voir, il ne peut pas trouver dev_appserver.py même si elle est dans mon répertoire /opt/google_appengine/. Juste pour vous assurer qu'il est pas un problème d'autorisations Je l'ai fait:

sudo chmod a+rwx dev_appserver.py 

Pour vérifier si elle a été ajoutée au chemin du système pour python2.5 Je l'ai fait:

$ python2.5 
Python 2.5.5 (r255:77872, Apr 29 2010, 23:59:20) 
[GCC 4.4.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> for line in sys.path: print line 
... 

/usr/local/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg 
/opt/google_appengine/demos 
/opt/google_appengine 
/usr/local/lib/python25.zip 
... 

Le répertoire apparaît dans cette liste donc je ne comprends pas pourquoi il ne peut pas être trouvé quand je tape:

$ python2.5 dev_appserver.py guestbook/ 

Je suis nouveau à Python, donc je vous serais reconnaissant de toute aide. Merci.

Répondre

4

Python n'observe pas PYTHONPATH lorsque vous recherchez un script que vous nommez sur la ligne de commande. Vous devez soit fournir le chemin d'accès complet à dev_appserver.py, soit modifier la première ligne de dev_appserver.py (et d'autres outils) pour commencer par "#!/usr/bin/env python2.5".

1

Quand vous faites

$ python2.5 dev_appserver.py guestbook/ 

ce que vous passez à l'exécutable python2.5 est CURRENT_PATH/dev_appserver.py.

Vous devez exécuter en utilisant

$ python /opt/google_appengine/dev_appserver.py guestbook/ 

ou

$ dev_appserver.py guestbook/ 

si dev_appserver.py a une shebangfor Python, qui est, as Nick Johnson points out, #!/usr/bin/env python2.5 ou #!/usr/bin/env python.

Sauf si vous avez une très bonne raison, ne spécifiez pas trop la version python, utilisez la commande générique python, qui est un lien symbolique vers la dernière version.

+0

Il a une très bonne raison: Le SDK App Engine prend actuellement uniquement en charge Python 2.5. –

+0

@Nick: point pris, mais chaque fois que je lis quelque chose sur le modèle de * Je suis nouveau à Python, donc j'apprécierais toute aide. *, J'essaie de leur donner quelques indications sur les choses qu'ils pourraient saisir sans une pleine compréhension . – voyager

+1

Assez juste. (Texte supplémentaire pour rendre heureux) –

Questions connexes