如何找到 Python 在 Unix 上的位置?

Posted

技术标签:

【中文标题】如何找到 Python 在 Unix 上的位置?【英文标题】:How do I find where Python is located on Unix? 【发布时间】:2011-05-21 09:08:11 【问题描述】:

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

开头
#!/local/usr/bin/python

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

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

谢谢!

【问题讨论】:

您可能想在 unix.stackexchange.com 上提出这类问题。这里完全可以接受,但是 unix 是解决这些特定的不是完全编程但与编程相关的问题的好地方 【参考方案1】:

试试:

which python

在终端中。

【讨论】:

这不是更简单更准确的问题答案吗?【参考方案2】:

出于这个原因,建议您将 shebang 行更改为更加与路径无关:

#!/usr/bin/env python

更多信息请见this mailing list message:

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

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

【讨论】:

即使在同一台机器上,当使用virtualenv时,解释器路径也会改变。【参考方案3】:
# which python
/usr/local/bin/python

更新

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

#!/usr/bin/env python

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

【讨论】:

【参考方案4】:

试试:which pythonwhereis python

【讨论】:

【参考方案5】:

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

`which python`

【讨论】:

【参考方案6】:

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

#!/usr/bin/env python

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

【讨论】:

以上是关于如何找到 Python 在 Unix 上的位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何在给定的数字集中找到位置的最主要位?

如何找到已安装在我的机器上的 cygwin 版本

你如何在 Python 中使用 Unix 套接字?

Python PDF挖掘获取文本在每一行上的位置

如何找到 Java 在 Windows 10 上的安装位置?

如何在 Python 中查找同一小时的第二天 Unix 时间戳,包括 DST?