程序媛的mac修炼手册-- 2024如何彻底卸载Python

啊,前段时间因为想尝试chatgpt的API,需要先创建一个python虚拟环境来安装OpenAI Python library.

结果,不出意外的出意外了,安装好OpenAI Python library后,因为身份认证问题,根本就没有获取API key的权限😂😂得,一顿操作猛如虎,结果全在自找堵。

然而,删了OpenAI Python library后,为其创建的python虚拟环境影响到了Mac的python环境配置。总之,不同的python环境开始打架了,代码是一点跑不了啊。

无奈,卸载重装Python,成为最迅捷的解决路径。可是,OpenAI Python library的python虚拟环境安装位置,和其他Python文件的安装位置不一致,导致我在卸载Python 过程中总是卸不干净,以下是卸载Python的经验历程血泪教训😂

目录

一、常规卸载Python路径

二、补充卸载Python路径

三、使用Homebrew卸载Python


前情提要:这里咱们主要针对的是,Monterey 12.3 及以后版本的macOS,如何彻底卸载自装的Python。Monterey 12.3及更早版本的macOS,系统预装了Python2,那是无法卸载的。

一、常规卸载Python路径

1、首先,在「应用程序」直接找到Python图标,然后「移到废纸篓」;

2、接下来,在「终端(terminal)」使用删除命令来删除Python的环境配置文件,通常在根用户目录下需要三条命令行来删:

rm -rf  /Applications/Python

3、如果你的Mac上装有多个版本的Python,那么这时候需要打开Python的环境配置文件夹,删除需要卸载的Python版本相关文件。

方法是:
打开“「访达(Finder)」“➡️ 点击Mac左上角的访达导航栏,点击 Go➡️在下拉框中选择Go to Folder ➡️ 然后在弹出的窗口中输入并选择“/Library/Frameworks/Python.framework”
打开Python.framework文件夹后,找到你需要删除的python版本文件夹。这时先打开「终端(terminal)」,敲下删除命令sudo rm -rf,然后把python版本文件夹拖到terminal中,如下图所示:(这一步需要输入验证管理员权限的密码)

如果你的Mac上只装有1个版本的Python,那在「终端(terminal)」使用以下删除命令,也可以得到相同效果。

rm -rf  /Library/Frameworks/Python.framework 
rm -rf  /usr/local/bin/python

 完成上述操作后,通常Mac上的Python就被卸载干净了。这时,在「终端(terminal)」中输入命令后,

python3 --version

会出现下图所示的反馈:

这说明,Mac上的python已经卸载干净了。

二、补充卸载Python路径

当然,也有人和我一样,完成上述常规卸载操作后,Mac上的Python稳如老狗。这时候就需要去犄角旮旯里找到Python的配置文件,进行一一删除。

谁能想到,我最终是执行以下命令,才把Python卸载干净的。😭😭
sudo rm -rf  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework
sudo rm -rf /Library/Developer/CommandLineTools/usr/bin/python3

每个人的情况不一样,咱们接下来讲基本方法。

最迅捷的方法是,打开「聚焦搜索(Spotlight Search)」,输入”python“,看看Mac上是否还有python相关文件。类似地,把相关文件拖到「终端(terminal)」中看文件储存路径,然后执行删除命令sudo rm -rf(空格)+ 文件路径。

Python安装通常会将可执行文件添加到/usr/local/bin文件夹中。上述步骤删除Python文件后,还需要删除任何匹配的Python可执行文件或syslink(到它的终端快捷方式),以避免以后出现兼容性问题。

要删除这些可执行文件,请打开「终端(terminal)」,并在终端中输入以下命令:

ls -l /usr/local/bin | grep ‘python’ 

上述命令执行后,将列出/usr/local/bin目录中所有包含单词‘python’的文件。找到你想卸载的Python版本相关联的文件,输入以下命令行,将file_name替换为你要删除的文件的实际名称。

sudo rm -rf /usr/local/bin/file_name


此时,你选择的Python版本的所有相关文件都将被删除。重复执行这些步骤,以删除与你要卸载的特定版本相关联的每个Python相关文件。

三、使用Homebrew卸载Python

如果你是用Homebrew在Mac上安装的Python,则可以按照以下步骤使用Homebrew卸载Python。

打开终端应用程序,键入并运行以下命令

brew list

这将列出你之前通过Homebrew安装的任何已安装软件包(例如,python@3.11代表Python 3.11),如下图所示:

要卸载这些Python软件包,需要在终端中键入并运行以下命令:

brew uninstall python_package

将python_package替换为你在上一步骤中识别出的正确软件包名称(例如,brew uninstall python@3.9)。

在删除软件包之后,键入并运行以下命令,以删除任何其他(现在不再需要的)文件。

brew cleanup python_package

将python_package替换为正确的名称(例如,brew cleanup python@3.9)。

到目前为止,使用Homebrew安装的Python版本已被移除。但是,如果你安装了多个版本的Python,可能需要重复这些步骤来移除下一个版本。

卸载干净了,是时候重装Python了,安装请参考这篇文章:
程序媛的mac修炼手册--小白入门Python篇-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git命令操作

什么是Git? Git是⼀个免费的,开源的分布式版本控制软件系统 git区域 存储区域:Git软件⽤于存储资源得区域。⼀般指得就是.git⽂件夹 ⼯作区域:Git软件对外提供资源得区域,此区域可⼈⼯对资源进⾏处理。 暂存区&am…

Escalate_Linux(3)--通过读取密码文件shadow来破解root用户的口令实现提权

通过读取密码文件shadow来破解root用户的口令实现提权 通过读取密码文件/etc/shadow来破解root用户的口令 ls -l /etc/shadow 普通用户无查看shadow权限 echo "cat /etc/shadow" >/tmp/ls ​ chmod 755 /tmp/ls ​ export PATH/tmp:$PATH ​ /home/user5/script…

Ubuntu中Python包的寻找路径

文章目录 一、Pyhon包的查找位置二、某个Python特定包的查找位置参考 一、Pyhon包的查找位置 ▶ [~]$ python -m site sys.path [/home/wangji,/usr/lib/python310.zip,/usr/lib/python3.10,/usr/lib/python3.10/lib-dynload,/home/wangji/.local/lib/python3.10/site-packag…

[C++]c++冒泡排序示例

冒泡排序是一种计算机科学领域的较简单的排序算法,这篇文章主要介绍了c冒泡排序示例,需要的朋友可以参考下 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个…

019 Spring Boot+Vue 电影院会员管理系统(源代码+数据库+文档)

部分代码地址: https://github.com/XinChennn/xc019-cinema 一、系统介绍 cinema项目是一套电影院会员管理系统,使用前后端分离架构开发包含管理员、会员管理、会员卡管理、电影票、消费记录、数据统计等模块 二、所用技术 后端技术栈: …

RabbitMQ-消息队列:优先级队列、惰性队列

20、优先级队列 在我们系统中有一个订单催付的场景,我们的客户在天猫下的订单,淘宝会及时将订单推送给我们,如果在用户设定的时间内未付款那么就会给用户推送一条短信提醒,很简单的一个功能对吧。 但是,天猫商家对我…

Apache Flume:分布式日志收集系统

什么是Apache Flume? Apache Flume 是一个分布式、可靠、高可用的服务,用于高效收集、聚合和移动大量日志数据。它的主要目标是将日志数据从源头传输到中央数据存储,如Hadoop的HDFS。Flume 是为了可靠地处理日志数据而设计的,它有…

【数据结构】周末作业

1.new(struct list_head*)malloc(sizeof(struct list_head*)); if(newNULL) { printf("失败\n"); return; } new->nextprev->next; prev->nextnew; return; 2.struct list_head* pprev->next; prev->nextp->next; p->next->prevpr…

【Java程序员面试专栏 算法思维】一 高频面试算法题:排序算法

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊排序算法,包括手撕排序算法,经典的TOPK问题以及区间合并,所以放到一篇Blog中集中练习 题目关键字解题思路时间空间快速排序双指针+递归+基准值分…

一种基于道路分类特性的超快速车道检测算法

摘要: 本文介绍了一种新颖、简单但有效的车道检测公式。 车道检测是自动驾驶和高级驾驶员辅助系统 (ADAS) 的基本组成部分,在实际高阶驾驶辅助应用中,考虑车道保持、转向、限速等相关的控制问题,这种方式通常是通过受限的车辆计算…

MATLAB环境下基于图像处理的视网膜图像血管分割

预防糖尿病对每个人的健康至关重要,而糖尿病的早期症状在眼底视网膜血管会有所体现,如静脉血管扩张、轻度弯曲等。高血压作为常见疾病,在中国有多达2.45亿的患者。高血压的病情也会在眼底视网膜血管上有所体现,如交叉压迫征等反映…

鸿蒙开发【WebGL】简单了解

WebGL的全称为Web Graphic Library(网页图形库),主要用于交互式渲染2D图形和3D图形。目前HarmonyOS中使用的WebGL是基于OpenGL裁剪的OpenGL ES,可以在HTML5的canvas元素对象中使用,无需使用插件,支持跨平台。WebGL程序是由JavaScr…

UE5 C++ TPS开发 学习记录(六)

这节课学习了如何创建插件,在Build.cs内使用模块和创建OnlineSubsystem // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Subsystems/GameInstanceSubsystem.h" #incl…

前端页面可视化大屏适配方案

无论窗口缩放&#xff0c;屏幕放大缩小&#xff0c;我们的可视化界面都可以按照设计图比例正常展示&#xff0c;不会出现字体模块爆出&#xff0c;或者拉伸问题。这就是我想要的适配方案。 html <div id"appRef"><div>html页面</div> </div&g…

iOS高级理论:Block的应用

Block 是 Objective-C 和 Swift 中的一种语言特性&#xff0c;可以用来封装一段代码并在需要时执行。在 iOS 开发中&#xff0c;Block 被广泛应用于以下场景&#xff1a; 一、异步任务处理 Block 可以用于异步任务的处理&#xff0c;例如网络请求、文件读写等。通过在 Block …

基础复习(IDA调试器)

1.选择IDA调试后端 在顶部有一个下拉菜单&#xff0c;选择调试器后端位置 很多用户实际上使用的是Windows版本的IDA&#xff0c;该IDA可以直接调试Windows下32bit和64bit的程序 2.本地调试启动方法 载入IDA后&#xff0c;程序实际上在对程序内置的一个字符串进行base64解码…

ARM Cortex-X5 传言表现不佳,高功率浪涌和低多核分数影响即将推出的核心设计

ARM 的新 Cortex-X5 设计似乎遇到了问题&#xff0c;有新的传言称&#xff0c;超级核心在提高时钟速度时会经历严重的高功耗&#xff0c;并且当最大功率限制降低时&#xff0c;多核性能会下降。虽然这对高通来说可能不是问题&#xff0c;因为据说其 Snapdragon 8 Gen 4 采用定制…

第四套CCF信息学奥赛c++ CSP-J认证初级组 中小学信奥赛入门组初赛考前模拟冲刺题(阅读程序题)

第四套中小学信息学奥赛CSP-J考前冲刺题 二、阅读程序题 (程序输入不超过数组或字符串定义的范围&#xff0c;判断题正确填√错误填X;除特殊说明外&#xff0c;判断题 1.5分&#xff0c;选择题3分&#xff0c;共计40分) 第一题 归并排序 1 #include <iostream> 2 usi…

力扣--哈希表/滑动窗口/双指针3.无重复字符的最长子串

思路分析&#xff1a; 使用双指针 i 和 j 表示子串的起始位置和结束位置。遍历字符串 s&#xff0c;对于每个字符&#xff1a; 如果字符不在 hash 中&#xff0c;将其加入 hash&#xff0c;同时更新最长子串的长度 result。如果字符已经在 hash 中&#xff0c;说明有重复字符出…

HeadFirst读书笔记

一、设计模式入门 1、使用模式最好的方式“把模式装进脑子里&#xff0c;然后在你的设计和已有的应用中&#xff0c;寻找何处可以使用它们”。以往是代码复用&#xff0c;现在是经验复用。 2、软件开发的一个不变的真理就是变化。 二、设计原则 1、找出应用中可能需要变化之…