在Mac上完全卸载Python 3

24

我在 Mac 上安装了 Python 3,并安装了一些包。但是后来发现 AWS Lambda 不支持 Python 3,因此我决定降级。我删除了应用程序中的 Python3 文件夹并清空了垃圾桶。但是我仍然看到一个名为 3 的文件夹位于 /Library/Frameworks/Python.framework/Versions 中,这导致了问题,例如:

  $ python3 -m pip install virtualenv
 Requirement already satisfied: virtualenv in      /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (20.14.1)
 Requirement already satisfied: platformdirs<3,>=2 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from virtualenv) (2.5.2) 

那么我的问题是,我如何从我的Mac电脑上完全卸载Python 3?


1
为什么要卸载它?Lambda在某个时间点将支持它,而且在那之前你可以并存多个版本的Python。 - chepner
2
好的,但因为我从零开始学习lambda,我只想保险起见,不浪费时间在由配置引起的调试问题上。例如,在安装Python 3.8后安装virtualenv时,它会在库中的3.10文件夹中找到site-packages(当时应该已卸载3.10)。不确定是否会发生什么不可预测的事情。 - Deepak Sharma
1
我怀疑你实际上没有使用Python 3.8来创建虚拟环境。 - chepner
3个回答

27

卸载应用程序并不能完全卸载 Python 版本。你需要删除框架目录及其符号链接。

删除框架

sudo rm -rf /Library/Frameworks/Python.framework/Versions/[版本号] 在此情况下,请将 [版本号] 替换为 3.10。

删除符号链接

列出破损的符号链接:

ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/[版本号]'

然后删除这些链接:

cd /usr/local/bin

ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/[版本号]' | awk '{print $9}' | tr -d @ | xargs rm*

请注意,复制这些命令时要小心。在执行任何操作之前,请确保输入的目录是实际可用的工作目录。

最终的想法是删除���件夹和符号链接,然后你就可以继续使用了。

以下是另一个解答此过程的回答:如何在 Mac OS X 10.6.4 上卸载 Python 2.7?


1
对于列出损坏的符号链接的给定命令,在 macOS 上,我不得不用直引号替换智能引号。'' - mcwizard
1
在 macOS 上,确定版本时:%Python3 --version 响应是 Python 3.8.6,但目录是 3.8,因此答案略微扩大,您可能不想将完整的响应版本号放入其中,使用目录名称,其中可能是次要版本,稍微截短版本。 - mcwizard
我用Homebrew安装还是直接安装有关系吗? - undefined

21
# The version of Python that you want to delete
python_version_number=3.10
sudo rm -rf /Library/Frameworks/Python.framework/Versions/${python_version_number}/
sudo rm -rf "/Applications/Python ${python_version_number}/"
cd /usr/local/bin && ls -l | grep "/Library/Frameworks/Python.framework/Versions/${python_version_number}" | awk '{print $9}' | sudo xargs rm

以防万一有人遇到同样的问题,当我使用两位数的格式时,它对我起作用了,比如"3.12"而不是三位数的格式,如"3.12.0"。 - undefined
我用Homebrew安装还是直接安装有关系吗? - undefined

2
这里的其他答案可能会过时,如果Python安装程序更改了其安装内容和位置。然而,一个更通用的解决方案,像这个这样的,它解释了如何从您的Mac中删除.pkg文件的所有内容,将清理安装程序中包含的文件,并且对未来大多数安装程序更改具有弹性。

我的旧版本安装程序(3.8)不支持这个功能,但是新版本(3.11)支持。不确定他们何时实现了一个合适的软件包。可能是我在早期版本中错过了安装程序中的选项。 - Gringo Suave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接