numpy双重安装(pip与apt get)

numpy双重安装(pip与apt get),numpy,pip,apt-get,Numpy,Pip,Apt Get,我在Ubuntu 14.04 LTS上使用python 2.7 我安装了tensorflow、scipy、numpy,但当我尝试使用apt get安装sklearn或opencv时,安装了另一个版本为1.8的numpy,它“覆盖”了我以前使用pip安装的版本,即1.12。我当时试着更新它,因为我需要1.12,但它不起作用 有谁能告诉我为什么会发生这种情况,是因为apt get优先于pip吗 如何强制更新numpy,或者只删除通过apt-get安装的一个,而不删除作为依赖项安装它的整个软件包(例如

我在Ubuntu 14.04 LTS上使用python 2.7

我安装了tensorflow、scipy、numpy,但当我尝试使用apt get安装sklearn或opencv时,安装了另一个版本为1.8的numpy,它“覆盖”了我以前使用pip安装的版本,即1.12。我当时试着更新它,因为我需要1.12,但它不起作用

有谁能告诉我为什么会发生这种情况,是因为apt get优先于pip吗


如何强制更新numpy,或者只删除通过apt-get安装的一个,而不删除作为依赖项安装它的整个软件包(例如sklearn)?

我在Debian中遇到了类似的问题。这就是我解决这个问题的方法

numpy版本:

  • apt-get:v1.8,在
    /usr/lib/python2.7/dist-packages
    ,让它成为“path1”
  • pip:v1.12,在
    /usr/local/lib/python2.7/dist包中,让它成为“path2”
如果希望将pip版本作为默认版本,请将路径1和路径2添加到环境变量
PYTHONPATH
,并将路径2置于路径1之前

因此,在shell配置中,比如~/.bashrc,添加以下行(用实际路径替换path1/2):

然后重新启动shell

您可以测试它是否与以下命令一起工作:
$python-c“import numpy;print numpy.\uuu文件”
,并确保路径为path2



我尝试跳过path1,即导出PYTHONPATH=path2:${PYTHONPATH}
,但这不起作用。

也许值得了解一下VirtualEnv处理这类事情的情况最后一行的“但这不起作用”到底是什么意思?您在path1上有一些基本的包,并且您需要path1和path2对python可见?我需要path2中的包,但是python仍然会从path1导入这些包,如果我没有在PYTHONPATH中显式地将path1添加到path2之后的话。
export PYTHONPATH=path2:path1:${PYTHONPATH}