Mac OS X 上的 Python 位置
- 2025-04-16 08:55:00
- admin 原创
- 24
问题描述:
我对 OS X 上的 Python 有点困惑。我不知道这台笔记本电脑的前主人是否使用 macport 安装过 macPython。我记得 OS X 有一个内置的 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
。它们是否都引用 mac 提供的相同内置 python?
我还读到安装 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 时,我发现了和上面相同的消息。
嗯,我有点搞糊涂了。哪个是哪个?
解决方案 1:
这个不仅可以解决您在Mac上的所有问题,还可以解决您在Linux上(以及每个基本 shell)的所有问题。
TL;DR(你不必看完整个答案——只需看前半部分)。
开始吧
在终端中运行:
which python3
在 Mac 上你应该获得:
/usr/local/bin/python3
等一下!这可能是一个符号链接,你怎么知道的?运行:
ls -al /usr/local/bin/python3
您将获得(如果您已经安装了 Python 和 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
解决方案 2:
我找到了最简单的定位方法,你可以使用
which python
它将显示如下内容:
/usr/bin/python
解决方案 3:
[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 实例来说是典型的,或者它可以是从源代码构建的。
解决方案 4:
在 Mac OS X 上,它位于 Python 框架中/System/Library/Frameworks/Python.framework/Resources
。
完整路径为:
/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
顺便说一句,很容易找出在哪里可以找到特定的二进制文件:which Python
将向您显示 Python 二进制文件的路径(可能与我上面发布的相同)。
解决方案 5:
我检查了一些类似的讨论,发现找到所有 python2/python3 版本的最佳方法是:
which -a python python3
解决方案 6:
在高脊山脉
which python
显示默认的 python,但如果您从 python.org 下载并安装了最新版本,您可以通过以下方式找到它:
which python3.6
我的机器上显示
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
解决方案 7:
使用“brew install python3”安装,在这里找到它
解决方案 8:
在交互式终端中运行此命令
import os
os.path
它将为您提供安装 python 的文件夹
解决方案 9:
在.py文件中运行以下代码:
import sys
print(sys.version)
print(sys.executable)
解决方案 10:
which python3
仅仅导致解释器安定下来的一条路径。
解决方案 11:
我有一个在 Linux/MacOS 中查找东西的食谱
首先更新定位数据库,然后执行
locate WHATiWANTtoSEARCH | less
执行 /find 来查找您要查找的内容。
要在 macos 中更新您的 locate db,请执行以下操作:
sudo /usr/libexec/locate.updatedb
有时需要一段时间。希望这能有所帮助:)
解决方案 12:
就我而言:
which python3: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
which python3.7: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
which python3.12: /opt/homebrew/bin/python3.12
将默认python3
命令更改为使用 Python 3.12 而不是 Python 3.7
创建符号链接
sudo ln -s /opt/homebrew/bin/python3.12 /usr/local/bin/python3
打开shell配置文件:
nano ~/.zshrc
在文件末尾添加以下行以设置 Python 3.12 的路径:
export PATH="/opt/homebrew/bin:$PATH"
获取更新后的配置文件以立即应用更改:
source ~/.zshrc
查看:
which python3
python3 --version
which python3.7
which python3.12
扫码咨询,免费领取项目管理大礼包!