pythonpath问题? “python2.5:无法打开文件'dev_appserver.py':[Errno 2]没有这样的文件或目录”

时间:2010-05-01 15:26:13

标签: python google-app-engine ubuntu-9.10 pythonpath

我将此行添加到我的.bashrc(Ubuntu 9.10):

export PYTHONPATH=/opt/google_appengine/

然后我在Ubuntu上通过python2.5运行dev_appserver,如下所示:

$ 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 个答案:

答案 0 :(得分:4)

在查找命令行中命名的脚本时,Python不会观察到PYTHONPATH。您需要提供dev_appserver.py的完整路径,或者修改dev_appserver.py(和其他工具)的第一行以“#!/usr/bin/env python2.5”开头。

答案 1 :(得分:1)

做的时候

$ 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.pyshebang for Python,即as Nick Johnson points out#!/usr/bin/env python2.5#!/usr/bin/env python

除非你有充分的理由,否则不要过度指定python版本,使用通用python命令,即最新版本的符号链接。