我的电脑上有多个Python吗?以及如何卸载其中之一?

我的电脑上有多个Python吗?以及如何卸载其中之一?

我遇到了python中没有更新numpy版本的问题pip install - U numpy,类似于https://stackoverflow.com/questions/26390895/why-isnt-pip-updating-my-numpy-and-scipy

因此,我怀疑我的电脑上是否有多个python。

当我运行时which -a python,它返回以下内容:

/usr/bin/python
/bin/python

这是否意味着我的电脑上有两个Python?如果这是真的,我想卸载其中一个。我试过yum remove python。但我跑的时候还是能看到这两条蟒蛇which -a python

答案1

which python只告诉你可执行文件跑步使用命令python,即它通常为每个参数返回一个结果,除非您指定-a,在这种情况下它会搜索环境变量中的所有目录$PATH。但在所有情况下都是相同的python命令。

如果你想知道python有多少个版本已安装在您的系统上,您最好使用locate /python | grep /binls -l /usr/bin/python*yum --showduplicates list python

至于您的两个python实例,很可能其中之一是[符号]链接:检查which -a python | xargs ls -li。如果您想删除特定版本的 python,则必须在yum命令行上指定该版本号,例如 : yum remove python-2.7.2.el5s2

编辑: 作为马特德姆据报道,/bin这是 Fedora 上的符号链接/usr/bin。因此,您不能从这些位置中的任何一个位置删除 python,rm否则您最终将根本删除 python。在这种情况下, in-i的参数将表明两个 python 实例具有相同的 inode。lswhich -a python | xargs ls -li

请注意,您不是必需的手动删除特定于版本的包,因为包管理器的目的正是根据依赖项要求充分提取版本。如果安装了特定版本,那么它的存在是有充分理由的。删除一个包可能会同时删除其他包。

最后,请务必使用发行版的包管理器来安装包及其依赖项,尤其是那些属于发行版存储库的包......除非不可能。我可能是错的,但如果您指望pip更新一些主要包,那么包管理器将会感到困惑,并且很可能会弄乱您手动满足的依赖项。 (事实上​​,这是相反的:让pip管理依赖关系可能会搞乱yum。)

答案2

在所有最新的 Fedora 版本中,/bin都有一个符号链接/usr/bin— 这意味着如果您查看 /bin,您实际上会被重定向到 /usr/bin。然而,两个都出现在$PATH(嗯;可能应该被清理),这就是你所看到的which -a python——两种获得实际上相同的二进制文件的方法。

所以,这里没有问题。

(但请注意,混合 pip 和 rpm (yum) 安装给出令人困惑的结果,并可能安装重复版本的东西。)

答案3

谢谢你们。问题已经解决了。我的电脑上确实有python3.3和python2.7。我通过 yum remove python3 删除 python3.3 。

numpy 问题通过添加来解决

export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.7/site-packages/

./bashrc.

相关内容