我已经在
/usr/local/bin
安装了Python 2.7.9。现在它不再起作用了。我在 /usr/bin/
中有另一个 Python,但在路径 /usr/local/bin/
中排在第一位。如何删除 Python 2.7.9?
你的问题缺乏细节,最相关的是你如何实际将Python安装到
/usr/local/bin
中。安装方法会指示如何删除已安装的文件。
将软件包安装到
/usr/local
目录层次结构中的最常见方法是从源代码编译并在编译和链接后运行 sudo make install
。如果您尚未删除原始(未压缩)源目录,您可以更改为该目录并通过运行以下命令删除已编译的 Python 包:
sudo make uninstall
如果源代码已被删除,您可以尝试重新下载源。
如果
uninstall
没有 make
目标(不幸的是,比您想象的更常见),另一个(不优雅的)选项是使用 find
命令来搜索 /usr/local
目录树中具有与您要删除的应用程序中的其他文件的修改时间相同。
checkinstall
工具。 这可以用来创建 RPM 或 Debian 软件包,然后使用系统的常规软件安装工具来安装(和卸载),而不是运行 make install
。
免责声明:从那以后我学到了很多东西,并且建议为 shell 或 shell 会话设置环境变量,而不是使用这个答案。例如,如果您手动将系统的 Python2 解释器重新链接到 Python3 解释器,则可能会对您的系统造成严重破坏。请谨慎使用此答案。
只需重置符号链接即可。
首先,找出是哪个Python:
$ which python
就我而言,我得到:
/usr/local/bin/python
然后找到符号链接指向的位置
$ file /usr/local/bin/python
/usr/local/bin/python: symbolic link to `/usr/bin/python'
然后只需将符号链接重新指向默认值(在本例中,我使用默认值:/usr/bin/python)。
无需卸载。
此后我发现了很多更好的方法来执行完全相同的行为,而不会对整个系统产生影响。
假设我在
python
中安装了不需要的 /usr/bin
,在 python
中安装了所需的 /opt/bin
。为了进行比较,我们假设 /usr/bin
是 Python 3.5,而 /opt/bin
是 Python 2.7。这会因使用错误的 Python 解释器而产生直接后果,而不是后续的细微错误。
应用程序默认值
如果您想(在 Linux 系统上)更改运行 Python 脚本的解释器,您可以通过 GUI 或 xdg-mime 进行更改(可以在此处找到演练)。对于 macOS 或 Windows,这可以通过 GUI 轻松完成。
交互式外壳
如果您想更改特定 shell 的默认 Python,我可以看到两种好方法。一种方法是针对特定情况更改默认搜索
PATH
,将 /opt/bin
设置在 usr/bin
之前,但是,如果您有许多系统软件包的替代安装,这也可能会带来问题。另一种方法是将 Python 的别名设置为您要使用的版本。这是首选解决方案,因为它仅更改解释器,并且只是引用现有命令的快捷方式。
例如,要设置别名,我可以使用:
alias python="/opt/bin/python"
要更改默认路径,我可以使用:
export PATH=/opt/bin:$PATH
将这些行添加到
~/.bashrc
或 ~/.bash_aliases
(默认情况下后者仅适用于 Ubuntu)将使这些快捷方式成为您启动的任何交互式 shell 上的默认快捷方式。将应用程序默认设置和交互式 shell 脚本结合起来,可以让您严格控制运行代码的解释器,但不需要干扰潜在的关键系统文件。
您的 PATH 环境变量。它有一个目录列表,bash 在寻找要执行的程序时会搜索这些目录(以相同的顺序)。基本上你想把 /usr/local/bin 放在 PATH 环境变量的开头。将以下内容添加到您的 ~/.bashrc 文件中:
export PATH=/usr/local/bin:$PATH
您可以通过在 bash 中运行 set 命令来查看当前设置。
或者,您可以简单地将 /usr/bin/python 重命名为 /usr/bin/python2.3 并创建指向新版本的符号链接,例如
ln -s /usr/local/bin/python /usr/bin/python
您可以使用 checkinstall 来删除 Python,:
请参阅这篇文章了解更多详情。