小编Hot*_*PxL的帖子

/usr/bin/python 在 macOS 上运行不同版本的脚本

我正在运行 macOS High Sierra 并发现系统 Python 的这种古怪行为。

所以/usr/bin/xattr是立即退出打印错误消息的Python脚本; 并且/usr/bin/xattr-2.7是真正的 xattr 工作。

如果我运行/usr/bin/xattrxattr或者/usr/bin/python /usr/bin/xattr,它们都将运行/usr/bin/xattr-2.7,而不是/usr/bin/xattr。请注意,无法/usr/bin/xattr将控制重定向到/usr/bin/xattr-2.7. 它立即打印错误消息。

但是如果我将目录更改为/usr/bin并运行/usr/bin/python ./xattr或只是./xattr,他们将运行真实/usr/bin/xattr并打印错误消息。

所以我想知道这里涉及到什么魔法。感觉就像预装的 Python 能够在执行我指定的脚本之前将版本号附加到脚本。

跟进:

从不同位置运行 Python 也会导致不同的行为

bash-3.2$ cd /usr/bin
bash-3.2$ ./python /usr/bin/xattr
bash-3.2$ cp python /tmp
bash-3.2$ cd /tmp
bash-3.2$ ./python /usr/bin/xattr
python version 2.7.10 can't run /usr/bin/xattr.  Try the alternative(s):

/usr/bin/xattr-2.7 (uses python 2.7)

Run "man …
Run Code Online (Sandbox Code Playgroud)

python macos

5
推荐指数
1
解决办法
515
查看次数

标签 统计

macos ×1

python ×1