我在/usr/local/bin
中安装了Python 2.7.9。现在它不再起作用了。我在/usr/bin/
中有另一个Python,但路径中首先是/usr/local/bin/
。我怎样才能删除2.7.9 Python?
答案 0 :(得分:8)
您的问题缺乏详细信息,最恰当的是您如何将Python实际安装到/usr/local/bin
中。安装方法将指示如何删除已安装的文件。
将包安装到目录的/usr/local
层次结构中的最常用方法是从源代码编译并在编译和链接后运行sudo make install
。如果您尚未删除原始(未压缩的)源目录,则可以通过运行以下命令将其更改为并删除已编译的Python包:
sudo make uninstall
如果源代码已被删除,您可以尝试重新下载源代码。
如果uninstall
没有make
目标(遗憾的是,比您想象的更常见),另一个(不优雅的)选项是使用find
命令搜索所有文件/usr/local
目录树,其修改时间与您要删除的应用程序中的其他文件相同。
现在,我建议安装checkinstall
工具。这可以用来创建RPM或Debian软件包,然后使用系统的常规软件安装工具安装(和卸载),而不是运行make install
。
答案 1 :(得分:4)
免责声明:我已经学到了很多东西,并建议为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系统上)更改哪个interpeter运行Python脚本,您可以通过GUI或xdg-mime(可以找到演练here)更改此脚本。对于macOS或Windows,可以通过GUI轻松完成。
Interactive Shell
如果您想更改特定shell的默认Python,我可以看到两种很好的方法。一种方法是在特定情况下将默认搜索PATH
更改为/opt/bin
之前设置usr/bin
,但是,如果您有许多系统软件包的替代安装,则可能会出现问题。另一种方法是将Python的别名设置为您要使用的版本。这是首选解决方案,因为它只更改解释器,并且只是引用现有命令的快捷方式。
例如,要设置我可以使用的别名:
alias python="/opt/bin/python"
要更改默认路径,我可以使用:
export PATH=/opt/bin:$PATH
将这些行添加到~/.bashrc
或~/.bash_aliases
(后者默认为Ubuntu)将使这些快捷方式成为您启动的任何交互式shell的默认值。结合应用程序默认值和交互式shell脚本,您可以严格控制哪个解释器运行您的代码,但不需要干扰可能至关重要的系统文件。
答案 2 :(得分:3)
您的PATH环境变量。它有一个目录列表,当它寻找要执行的程序时,它会搜索(按相同的顺序)。基本上你想把/ 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
答案 3 :(得分:1)
您可以使用checkinstall删除Python,
有关详细信息,请参阅this post。