我已经在/usr/local/bin
中安装了Python2.7.9。现在它不再起作用了。我在/usr/bin/
中有另一个Python,但是路径中首先是/usr/local/bin/
。如何删除2.7.9 Python?
发布于 2015-05-21 09:12:21
免责声明:我已经学到了很多,并且建议设置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)。
不需要卸载。
更新
从那以后,我找到了许多更好的方法来执行这种完全相同的行为,而不会对整个系统产生影响。
假设我在/usr/bin
中安装了不想要的python
,在/opt/bin
中安装了所需的python
。让我们来比较一下,/usr/bin
是Python3.5,/opt/bin
是Python2.7。这将造成使用错误的Python解释器的直接后果,而不是一行中的微妙错误。
应用程序默认
如果您想(在Linux系统上)更改运行Python脚本的interpeter,则可以通过GUI或xdg(可以找到here)更改这一点。对于macOS或Windows,这可以通过GUI轻松地完成。
交互式Shell
如果您想更改特定shell的默认Python,我可以看到两种很好的方法。一种方法是将默认的search PATH
更改为在特定情况下在usr/bin
之前设置/opt/bin
,但是,如果您有许多替代系统包的安装,这也可能会造成问题。另一个方法是将Python的别名设置为您想要使用的版本。这是首选的解决方案,因为它只更改解释器,只是引用现有命令的快捷方式。
例如,要设置我可以使用的别名:
alias python="/opt/bin/python"
要更改默认路径,我可以使用:
export PATH=/opt/bin:$PATH
将这些行添加到~/.bashrc
或~/.bash_aliases
(后者在默认情况下是Ubuntu)将使这些快捷方式成为您启动的任何交互式shell的默认选项。结合应用程序默认值和交互式shell脚本,您可以严格控制哪个解释器运行您的代码,但不需要干扰潜在的关键系统文件。
发布于 2015-05-21 08:58:16
您的问题缺乏细节,最相关的是如何将Python实际安装到/usr/local/bin
中。安装方法将指示如何删除已安装的文件。
将软件包安装到目录的/usr/local
层次结构中的最常见方法是从源代码编译,并在编译和链接之后运行sudo make install
。如果您还没有删除原始(未压缩的)源目录,则可以通过运行以下命令将其更改为并删除编译后的Python包:
sudo make uninstall
如果源代码已被删除,则可以再次尝试重新下载源代码。
如果没有uninstall
目标用于make
(不幸的是,比您想象的更常见),另一个(不雅的)选项是使用find
命令搜索/usr/local
目录树中的所有文件,这些文件的修改时间与您想要删除的应用程序中的其他文件相同。
现在,我建议安装checkinstall
工具。而不是运行make install
,它可以用于创建RPM或Debian包,然后可以使用系统的常规软件安装工具安装(并卸载)这些包。
发布于 2015-05-21 08:55:32
路径环境变量。它有一个目录列表,在查找要执行的程序时,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
https://stackoverflow.com/questions/30368420
复制相似问题