14

我正在为一个新的工作场所开发一台新服务器,并且我正在尝试重用我今年早些时候用 Python 编写的 CGI 脚本。我的 CGI 脚本以

#!/local/usr/bin/python

但是当我在新服务器上运行它时,它抱怨没有这样的文件夹。显然 Python 保存在这个盒子的不同位置,但我不知道在哪里。

我以前没有做过太多的unix,刚好可以四处走动,所以如果有一些巧妙的技巧我应该在这里知道,我会很感激:)

谢谢!

4

6 回答 6

25

尝试:

which python

在一个终端。

于 2010-12-07T04:37:06.887 回答
9

出于这个原因,建议您将 shebang 行更改为更加路径不可知:

#!/usr/bin/env python

有关更多信息,请参阅此邮件列表消息

考虑在不同的机器上安装 python 的可能性,/usr/bin/python或者/bin/python在这些情况下#!/usr/local/bin/python会失败。对于这些情况,我们可以使用参数调用可执行文件,这将通过在中搜索并正确使用它env来确定参数路径。$PATH

env几乎总是位于,/usr/bin/因此不必担心env不存在于/usr/bin。)

于 2010-12-07T04:41:20.803 回答
4
# which python
/usr/local/bin/python

更新

我看错了。将您的标题替换为

#!/usr/bin/env python

这将从运行脚本环境设置的用户那里拉入 python 位置

于 2010-12-07T04:37:05.040 回答
3

尝试:which pythonwhereis python

于 2010-12-07T04:37:13.277 回答
2

对标头 Python 脚本使用反引号是个好主意:

`which python`
于 2010-12-07T07:30:08.253 回答
1

解决这个问题的正确方法是

#!/usr/bin/env python

这允许在 shebang 的 PATH 中使用二进制文件。

于 2010-12-07T04:38:09.060 回答