我遇到了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 /bin
或ls -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。ls
which -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
.