Python路径问题?“python2.5:无法打开文件'dev_appserver.py':[Errno 2]没有那个文件或目录”

3
我在我的 .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

正如您所看到的,即使在我的/opt/google_appengine/目录中有dev_appserver.py文件,它仍然找不到。为了确保这不是权限问题,我做了以下操作:
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

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


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.py有一个shebang 用于Python的, 即如Nick Johnson所指出的, #!/usr/bin/env python2.5#!/usr/bin/env python

除非你有非常好的理由,否则不要过度指定Python版本,使用通用的python命令,它是一个符号链接到最新版本。


他确实有一个非常好的理由:App Engine SDK目前仅支持Python 2.5。 - Nick Johnson
@Nick:我理解你的意思,但每当我看到类似这样的话“我对Python还很新,所以我会非常感激任何帮助。” ,我都会尝试给他们一些指针,让他们能够在没有完全理解的情况下掌握一些技巧。 - Esteban Küber
1
好的。 (额外的文本以让SO满意) - Nick Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接