你如何使python脚本全局可执行? OSX

时间:2016-11-24 19:01:38

标签: python macos scripting

我已经在这里阅读了许多其他答案,试图让它发挥作用,但由于某种原因,它不会成功。我已经更改了权限并使用chmod +x <myscript.py>创建了.py可执行文件,并且我已将该文件复制到我的/ usr / local / bin中,默认情况下该文件已存在于我的PATH中,但是,除非我在他们所在的目录中,否则我仍然无法执行该脚本。

此外,我对标题的工作原理有点困惑。我目前有#!/usr/bin/python,因为当我将其更改为#!/usr/local/bin以匹配目录时,当我运行脚本时,我的终端说我有一个&#34;糟糕的翻译。&#34;

我知道这个话题已经在这里进行了很多,但其他修复工作并没有奏效。提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您运行这样的脚本:

./Untitled.py

Bash将尝试在当前目录中查找脚本 - 因为您已使用文件路径调用脚本(在这种情况下是相对的)。

但是,如果你运行这样的脚本:

Untitled.py

Bash会在PATH中搜索具有该名称的可执行文件。假设您已使脚本可执行(使用chmod)且该脚本位于PATH的目录中,则该脚本应该运行。

关于she-bang系列,而不是硬编码到特定的Python(/usr/bin/python),更常见的方法是:

#! /usr/bin/env python

您的脚本将由当前处于活动状态的Python执行(例如,您可能正在使用virtualenvpyenv在Pythons之间切换,具体取决于您当前的项目。)

相关问题