mac osx上的python位置

新手上路,请多包涵

我对 osx 上的 python 有点困惑。我不知道笔记本电脑的前主人是否使用 macport 安装了 macpython。我记得 osx 有一个内置版本的 python。我尝试使用 type -a python 并返回结果

python is /usr/bin/python
python is /usr/local/bin/python

但是在这些位置运行两个 python 给我 [GCC 4.2.1 (Apple Inc. build 5646)] on darwin 。它们是否都引用了提供的相同的内置 python mac?

我还读到安装 macpython 会

     A MacPython 2.5 folder in your Applications folder. In here you
 find IDLE, the development environment that is a standard part of
 official Python distributions...

我查看了 Applications ,并且有一个 MacPort 文件夹 python2.6 以及其中提到的内容。但是运行 IDLE,我发现与上面相同的消息。

嗯,我有点困惑。哪个是哪个?

原文由 goh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 478
2 个回答

[GCC 4.2.1 (Apple Inc. build 5646)] 是构建 Python 的 GCC 版本,而不是 Python 本身的版本。该信息应该在前一行。例如:

 # Apple-supplied Python 2.6 in OS X 10.6
$ /usr/bin/python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

# python.org Python 2.7.2 (also built with newer gcc)
$ /usr/local/bin/python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

/usr/bin 中的项目应该始终是或链接到 Apple 在 OS X 中提供的文件,除非有人不明智地在那里进行了更改。要准确查看 /usr/local/bin/python 链接到的位置:

 $ ls -l /usr/local/bin/python
lrwxr-xr-x  1 root  wheel  68 Jul  5 10:05 /usr/local/bin/python@ -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

在这种情况下,这对于 python.org 安装的 Python 实例来说是典型的,或者它可能是从源代码构建的。

原文由 Ned Deily 发布,翻译遵循 CC BY-SA 3.0 许可协议

这个不仅可以 解决您Mac 上的所有问题,还可以在 Linux 上找到它(以及每个基本 shell)。

TL;DR (您不必完成所有答案 - 只需完成第一部分)。

我们走吧

在终端运行:

 which python3

在 Mac 上你应该得到:

 /usr/local/bin/python3

等待!!! 这可能是一个符号链接,你怎么知道的?跑步:

 ls -al /usr/local/bin/python3

你会得到(如果你已经安装了 Python w/Brew):

 /usr/local/bin/python3 -> /usr/local/Cellar/python/3.6.4_4/bin/python3

这意味着你的

/usr/local/bin/python3

实际上指向( 真实 位置)

 /usr/local/Cellar/python/3.6.4_4/bin/python3

而已!

更长的版本(可选): 如果出于某种原因,您的

/usr/local/bin/python3

没有指向你想要的地方,在我们的例子中:

 /usr/local/Cellar/python/3.6.4_4/bin/python3

只是备份它(+很酷的技巧添加 .orig 文件后缀):

 cp /usr/local/bin/python3{,.orig}

并运行:

 rm -rf /usr/local/bin/python3

现在创建一个新的符号链接:

 ln -s /usr/local/Cellar/python/3.6.4_4/bin/python3 /usr/local/bin/python3

现在你的

/usr/local/bin/python3

指向

/usr/local/Cellar/python/3.6.4_4/bin/python3

通过运行检查它:

 ls -al /usr/local/bin/python3

原文由 Kohn1001 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题