проблема с питоном? "python2.5: невозможно открыть файл 'dev_appserver.py': [Errno 2] Нет такого файла или каталога" - PullRequest
3 голосов
/ 01 мая 2010

Я добавил эту строку в свой .bashrc (Ubuntu 9.10):

export PYTHONPATH=/opt/google_appengine/

А потом я запустил dev_appserver через python2.5 в Ubuntu следующим образом:

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

Как видите, он не может найти dev_appserver.py, хотя он находится в моем каталоге /opt/google_appengine/. Просто чтобы убедиться, что это не проблема с разрешениями, я сделал это:

sudo chmod a+rwx dev_appserver.py

Чтобы проверить, был ли он добавлен в системный путь для python2.5, я сделал это:

$ 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
...

Каталог отображается в этом списке, поэтому я не понимаю, почему его нельзя найти при вводе:

$ python2.5 dev_appserver.py guestbook/

Я новичок в Python, поэтому буду признателен за любую помощь. Благодаря.

Ответы [ 2 ]

4 голосов
/ 01 мая 2010

Python не наблюдает PYTHONPATH при поиске сценария, который вы называете в командной строке. Вам нужно либо указать полный путь к dev_appserver.py, либо изменить первую строку dev_appserver.py (и других инструментов), чтобы начать с "#!/usr/bin/env python2.5".

1 голос
/ 01 мая 2010

при выполнении

$ python2.5 dev_appserver.py guestbook/

то, что вы передаете исполняемому файлу python2.5, равно CURRENT_PATH/dev_appserver.py.

Вы должны выполнить, используя

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

или

$ dev_appserver.py guestbook/

если dev_appserver.py имеет шебанг для Python , то есть , как указывает Ник Джонсон , #!/usr/bin/env python2.5 или #!/usr/bin/env python.

Если у вас нет веских причин, не указывайте версию Python слишком сильно, используйте общую команду python, которая является символической ссылкой на последнюю версию.

...