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

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

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

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

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

谢谢!

【问题讨论】:

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

标签: python shell unix directory shebang


【解决方案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 中使用二进制文件。

        【讨论】:

          猜你喜欢
          • 2022-12-05
          • 2010-09-21
          • 2018-07-01
          • 1970-01-01
          • 2014-04-09
          • 1970-01-01
          • 2021-04-08
          • 2015-07-30
          相关资源
          最近更新 更多