如何在Mac OS X 10.6.4上卸载Python 2.7?

Jan*_*ard 296 python macos uninstall python-2.7

我想从Mac OS X 10.6.4中完全删除Python 2.7.我设法PATH通过还原我的变量从变量中删除条目.bash_profile.但我还想删除Python 2.7安装包安装的所有目录,文件,符号链接和条目.我从http://www.python.org/获得了安装包.我需要删除哪些目录/文件/配置文件条目?某个地方有名单吗?

Ned*_*ily 616

不要试图删除任何苹果公司提供的系统的Python这是在/System/Library/usr/bin,因为这可能会破坏你的整个操作系统.


注意: 下面列出的步骤不会影响Apple提供的系统Python 2.7; 他们只删除第三方Python框架,就像python.org安装程序安装的那样.


完整列表在此处记录.基本上,您需要做的就是以下内容:

  1. 删除第三方Python 2.7框架

    sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
    
    Run Code Online (Sandbox Code Playgroud)
  2. 删除Python 2.7应用程序目录

    sudo rm -rf "/Applications/Python 2.7"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 删除/usr/local/bin指向此Python版本的符号链接.看他们使用

    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' 
    
    Run Code Online (Sandbox Code Playgroud)

    然后运行以下命令以删除所有链接:

    cd /usr/local/bin/
    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
    
    Run Code Online (Sandbox Code Playgroud)
  4. 如有必要,请编辑您的shell配置文件以删除添加/Library/Frameworks/Python.framework/Versions/2.7到您的PATH环境文件.根据其外壳使用,任何下列文件可能已被修改: ~/.bash_login,~/.bash_profile,~/.cshrc,~/.profile,~/.tcshrc,和/或~/.zprofile.

  • 感谢Ned的抬头,我确实删除了它,并且发现了你必须重新安装Mac OS X的困难方法.我将这里留给这里的任何其他人,我认为我做了同样的事情.不要删除/ System/Library/Frameworks /中的Python ...您的应用程序都不会起作用,您将不得不重新安装OS X. (132认同)
  • Python确实需要添加卸载脚本 (45认同)
  • Python 2.7是最近系统上的默认系统Python,而在10.6.4上,2.6和2.7是用户安装的.不要从最近的OS X系统中卸载2.7. (39认同)
  • 上面的步骤不会从OS X的*any*版本中删除系统Python.系统Pythons安装在`/ System/Library/Frameworks`(你永远不应该修改),而不是`/ Library/Frameworks`. (25认同)
  • “ brew doctor”也可以用来查找未使用的符号链接。 (4认同)
  • 不要执行这些步骤!!!!您的virtualenv环境将被破坏!!!!哦,我的上帝!!!为什么我要执行这些步骤! (3认同)
  • 谢谢你,谢谢@Martijn Pieters。我差点把我的 Mac 搞砸了。我试图安装 cx_Oracle,它默认为 python2.7,但我正在使用 Python 3.7。无需卸载Python 2.7。只需安装Python3.x并使用:`python3 -m pip install cx_Oracle --upgrade`而不是`python -m pip install cx_Oracle --upgrade`(注意3表示安装Python 3.x)。 (2认同)

小智 73

这个工作:

cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
Run Code Online (Sandbox Code Playgroud)

描述:它列出所有链接,删除@字符然后删除它们.


Ath*_*Raj 45

创建指向最新版本的符号链接

 ln -s -f /usr/local/bin/python3.8 /usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)

关闭并打开一个新终端

并尝试

 python --version
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,同样的方式适用于 pip “ ln -s -f /usr/local/bin/pip3 /usr/local/bin/pip ” 然后“ pip --version” 如果你想升级 pip 也可以使用这个命令“pip安装--升级pip” (4认同)
  • 或者根据您的 OSX 尝试 `/usr/bin/` 而不是 `/usr/local/bin/` (2认同)

Gab*_*tto 24

如果您使用PKG安装程序安装它,您可以执行以下操作:

pkgutil --pkgs
Run Code Online (Sandbox Code Playgroud)

或更好:

pkgutil --pkgs | grep org.python.Python
Run Code Online (Sandbox Code Playgroud)

这将输出如下内容:

org.python.Python.PythonApplications-2.7
org.python.Python.PythonDocumentation-2.7
org.python.Python.PythonFramework-2.7
org.python.Python.PythonProfileChanges-2.7
org.python.Python.PythonUnixTools-2.7
Run Code Online (Sandbox Code Playgroud)

您现在可以选择要取消链接(删除)的软件包.

这是unlink文档:

 --unlink package-id
             Unlinks (removes) each file referenced by package-id. WARNING: This command makes no attempt to perform reference counting or dependency analy-
             sis. It can easily remove files required by your system. It may include unexpected files due to package tainting. Use the --files command first
             to double check.
Run Code Online (Sandbox Code Playgroud)

在我的例子中,你将输入

pkgutil --unlink org.python.Python.PythonApplications-2.7
pkgutil --unlink org.python.Python.PythonDocumentation-2.7
pkgutil --unlink org.python.Python.PythonFramework-2.7
pkgutil --unlink org.python.Python.PythonProfileChanges-2.7
pkgutil --unlink org.python.Python.PythonUnixTools-2.7
Run Code Online (Sandbox Code Playgroud)

或者在一行中:

pkgutil --pkgs | grep org.python.Python | xargs -L1 pkgutil -f --unlink
Run Code Online (Sandbox Code Playgroud)

重要提示: - 从Lion开始不再提供--unlink(截至2014年第一季度,其中包括Lion,Mountain Lion和Mavericks).如果有任何人来到这个指令尝试与狮子使用它,应该尝试改为使用这篇文章所说的内容:https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X

  • 不幸的是,取决于`pkgutil`将不会删除Python安装程序安装的所有文件,因为其中一些文件是在安装postflight脚本期间创建的,因此未注册. (4认同)

Dan*_*Lee 18

试图用.卸载Python

brew uninstall python
Run Code Online (Sandbox Code Playgroud)

不会删除本机安装了Python,而是与安装的版本brew.


Rob*_*eda 13

无需卸载它或使用符号链接发疯,只需使用alias. 升级到 python 3.7.1 时我遇到了同样的问题。
只需使用brew install pythonthen安装新的 python 版本,然后在.bash_profile创建一个指向新 python 版本的别名;像这样:alias python="/usr/local/bin/python3"然后保存并运行source ~/.bash_profile
完毕。


小智 8

关于删除符号链接,我发现这很有用.

find /usr/local/bin -lname '../../../Library/Frameworks/Python.framework/Versions/2.7/*' -delete
Run Code Online (Sandbox Code Playgroud)


Put*_*tna 8

python3在安装了以下命令的MacOS 上brew

sudo ln -s -f /opt/homebrew/bin/python3 /usr/local/bin/python
sudo ln -s -f /opt/homebrew/bin/pip3 /usr/local/bin/pip
Run Code Online (Sandbox Code Playgroud)

重新打开终端

python --version
pip --version
Run Code Online (Sandbox Code Playgroud)


小智 7

从 python 2.7.16 升级到 python 3.9 时我遇到了同样的问题 只需使用 brew install python 安装新的 python 版本或下载并安装你的操作系统然后

  1. sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
    
    Run Code Online (Sandbox Code Playgroud)
  2. sudo rm -rf "/Applications/Python 2.7"
    
    Run Code Online (Sandbox Code Playgroud)
  3. ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7'
    
    Run Code Online (Sandbox Code Playgroud)
  4. 然后检查 - > python --version

  5. 在您.bash_profile创建一个指向新 python 版本的别名中;像这样:

    alias python="/usr/local/bin/python3" 
    
    Run Code Online (Sandbox Code Playgroud)

    然后保存并运行 source ~/.bash_profile

  6. 检查-> python --version

现在一切就绪


min*_*s23 5

无需卸载旧的python版本.

只需安装新版本说python-3.3.2-macosx10.6.dmg并将python的软链接更改为新安装的python3.3

使用以下命令检查默认python和python3.3的路径

"哪个python"和"哪个python3.3"

然后删除python的现有软链接并将其指向python3.3

  • 谢谢,但这不回答我的问题.问题不是我是否需要卸载旧的python版本才能安装新版本. (9认同)
  • @minhas23 我如何删除软链接并创建一个新链接? (3认同)
  • 这似乎是最安全的方法,因为对我来说,对操作系统放在机器上的东西进行处理通常不会那么好。在遇到来自 python2 shell 中的 python3 语句的语法问题后,我也“从 http://python.org 获得了安装包”。我的第一个想法是删除 python2 并改用 python3。但是,从先前的帖子中可以确认该操作的危险性。这对我来说是更好的解决方案,并遵循“使用链接重新路由行为”的想法。此外,python3 shell 已经安装,只需要在提示符下输入“python3”而不是“python”。 (2认同)

小智 5

OnurGüzel在他的博客文章“从OS X卸载Python包”中提供了解决方案。

您应该在终端中键入以下命令:

  1. sudo rm -rf /Library/Frameworks/Python.framework
  2. cd /usr/local/bin
  3. ls -l . | grep '../Library/Frameworks/Python.framework' | awk '{print $9}' | xargs sudo rm
  4. sudo rm -rf "/Applications/Python x.y"

    其中命令xy是安装的Python版本。根据您的问题,应该是2.7。

用Onur的话来说:

警告:此命令将删除与软件包一起安装的所有Python版本。系统提供的Python不会受到影响。

如果您从python.org安装了多个版本的Python,请再次运行第四个命令,为要卸载的每个Python版本更改“ xy”。


Pra*_*kar 5

这就是我在 Mac OS 上的工作

  1. 从https://www.python.org/downloads/mac-osx/下载最新的 Python 3.x

  2. 通过单击安装程序时显示的安装步骤来安装 Python 3.x

  3. ln -s -f /usr/local/bin/python3.9 /usr/local/bin/python

  4. ln -s -f /usr/local/bin/pip3 /usr/local/bin/pip

  5. 打开一个新的终端窗口并验证python --version。应该说3.x

对于步骤 3,通过检查以下输出来确认现有 python 可执行文件的路径which python