为什么OSX没有运行python呢

2024-04-19 11:19:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一台运行OSX约塞米蒂的机器(它已经通过了OSX的几个版本,这可能会有所不同)。你知道吗

我注意到python是否可以导入库取决于脚本是否直接运行

./Myscript.py

或者明确地调用python

python Myscript.py

现在,如果我打字

$whereis python
/usr/bin/python

我在剧本里的谢邦台词是

#!/usr/bin/python

所以我假设在这两种情况下运行的是相同版本的python。你知道吗

但经过调查我发现

$python --version
Python 2.7.6
$/usr/bin/python --version
Python 2.7.10

因此,似乎正在执行的python不是我在whereis中得到的python

有谁能解释一下这个问题,并说明如何解决?我真的很想在这两种情况下都运行2.7.10,因为现在当我安装库时,它们进入2.7.6,但是当我运行脚本时,它们运行2.7.10,并且看不到库。你知道吗

谢谢

乔恩


Tags: py版本脚本机器binversionusr情况
1条回答
网友
1楼 · 发布于 2024-04-19 11:19:27

不要使用whereis,该命令会忽略PATH环境变量。从手册页:

The whereis utility checks the standard binary directories for the specified programs, printing out the paths of any it finds.

我的。你知道吗

您有一个PATH环境变量,它包含一个“非标准”二进制目录。使用which查找python的来源:

$ which python

which提供当前shell配置使用的实际二进制文件:

The which utility takes a list of command names and searches the path for each executable file that would be run had these commands actually been invoked.

您可以使用which -a查找命令的所有可能的完成项:

$ which -a python

另请参见超级用户上的“whereis” and “which” return different paths in Mac OS X。你知道吗

演示:

$ PATH=/opt/homebrew/bin:$PATH whereis python
/usr/bin/python
$ PATH=/opt/homebrew/bin:$PATH which -a python
/opt/homebrew/bin/python
/usr/bin/python

所以即使PATH显式地指向我的自制目录,whereis也会忽略它。which找到它并首先列出它(参数-a使它寻找更多选项)。你知道吗

相关问题 更多 >