【问题标题】:numpy double installation (pip vs apt-get)numpy 双重安装(pip vs apt-get)
【发布时间】:2016-11-22 10:58:53
【问题描述】:

我在 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)?

【问题讨论】:

  • 可能值得了解 virtualemnv 来处理这种事情

标签: numpy pip apt-get


【解决方案1】:

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

numpy 版本:

  • apt-get: v1.8, at /usr/lib/python2.7/dist-packages, 让它成为 "path1"
  • pip: v1.12,/usr/local/lib/python2.7/dist-packages,让它成为 "path2"

添加 BOTH path1 和 path2 到环境变量 PYTHONPATH,如果您希望 pip 版本为默认值,ma​​ke path2 before path1

因此,在 shell 配置中,比如 ~/.bashrc,添加这一行(将 path1/2 替换为真实路径):

export PYTHONPATH=path2:path1:${PYTHONPATH}

然后重新启动外壳。

你可以用这个命令测试它是否有效:$ python -c "import numpy; print numpy.__file__",并确保路径是path2。


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

【讨论】:

  • 最后一行的“但这不起作用”实际上是什么意思?您在 path1 上有一些基本包,并且您需要 path1 和 path2 对 python 可见?
  • 我需要 path2 中的那个,但是如果我没有在 PYTHONPATH 中的 path2 之后显式添加 path1,python 仍然总是从 path1 导入它。
猜你喜欢
  • 1970-01-01
  • 2018-09-07
  • 2016-01-23
  • 1970-01-01
  • 2015-09-16
  • 2017-12-04
  • 2016-07-28
  • 2011-09-08
相关资源
最近更新 更多