遇到pip install - U numpy
python中没有更新numpy版本的问题,类似/sf/ask/1847362681/
因此,我怀疑我的计算机上是否有多个python。
当我运行时which -a python
,它返回以下内容:
/usr/bin/python
/bin/python
Run Code Online (Sandbox Code Playgroud)
这是否意味着我的计算机上有两个 python?如果这是真的,我想卸载其中之一。我试过了yum remove python
。但是当我跑的时候,我仍然可以看到这两条蟒蛇which -a python
。
小智 4
which python
只告诉您将使用该命令运行的可执行文件python
,即它通常为每个参数返回一个结果,除非您指定-a
,在这种情况下它会搜索环境变量中的所有目录$PATH
。但在所有情况下都是相同的python
命令。
如果您想知道系统上安装了多少个版本的 python ,最好使用locate /python | grep /bin
orls -l /usr/bin/python*
或yum --showduplicates list python
。
至于您的两个python
实例,很可能其中之一是[符号]链接:检查which -a python | xargs ls -li
。如果您想删除特定版本的 python,则必须在yum
命令行上指定该版本号,例如 : yum remove python-2.7.2.el5s2
。
编辑:正如mattdm报告的那样,/bin
是 Fedora 上的符号链接/usr/bin
。因此,您不能从这些位置中的任何一个位置删除 python,否则rm
您最终将根本删除 python。在这种情况下, in-i
的参数将表明两个 python 实例具有相同的 inode。ls
which -a python | xargs ls -li
请注意,您不需要手动删除特定于版本的包,因为包管理器的目的正是根据依赖项要求充分提取版本。如果安装了特定版本,那么它的存在是有充分理由的。删除一个包可能会同时删除其他包。
最后,请务必使用发行版的包管理器来安装包及其依赖项,尤其是那些属于发行版存储库的包......除非不可能。我可能是错的,但如果您指望pip
更新一些主要包,那么包管理器将会感到困惑,并且很可能会弄乱您手动满足的依赖项。(事实上,这是相反的:让pip
管理依赖关系可能会搞乱yum
。)