我正在为新的工作场所开发一个新服务器,试图重用我今年早些时候编写的一个Python CGI脚本。我的CGI脚本以以下方式开始:
#!/local/usr/bin/python
但是当我在新服务器上运行它时,它会抱怨说没有这样的文件夹。 显然,Python在这个机器上被保存在不同的位置,但我不知道在哪里。
我之前并没有做过很多Unix,只是足够用来应对一些问题。所以如果这里有什么我应该知道的巧妙技巧,我会很感激的:)
谢谢!
我正在为新的工作场所开发一个新服务器,试图重用我今年早些时候编写的一个Python CGI脚本。我的CGI脚本以以下方式开始:
#!/local/usr/bin/python
但是当我在新服务器上运行它时,它会抱怨说没有这样的文件夹。 显然,Python在这个机器上被保存在不同的位置,但我不知道在哪里。
我之前并没有做过很多Unix,只是足够用来应对一些问题。所以如果这里有什么我应该知道的巧妙技巧,我会很感激的:)
谢谢!
尝试:
which python
在终端中运行。
#!/usr/bin/env python
/usr/bin/python
或 /bin/python
,这种情况下,#!/usr/local/bin/python
将会失败。为了解决这个问题,我们需要使用 env
命令来确定 Python 解释器的路径,并正确地使用它。通过在 $PATH
中搜索,我们可以找到 env
命令所在的路径。(env
命令几乎总是位于 /usr/bin/
目录下,因此不必担心 env
命令不存在于 /usr/bin
目录下。)# which python
/usr/local/bin/python
更新:
我看错了。请用以下代码替换您的标题:
#!/usr/bin/env python
这将从运行脚本的用户的环境设置中获取Python位置。
Try: which python
or whereis python
在编写Python脚本的标题时,使用反引号是一个好的想法:
`which python`
解决这个问题的正确方法是使用
#!/usr/bin/env python
这允许在shebang中使用PATH中的二进制文件。