2016-11-21 31 views
1

我在Ubuntu 14.04 LTS上使用python 2.7。numpy雙重安裝(pip vs apt-get)

我已經安裝了tensorflow,scipy,numpy,但是當我嘗試使用apt-get安裝sklearn或opencv時,安裝了其版本爲1.8的另一個numpy,它將「覆蓋」我之前使用1.12的pip安裝的那個numpy。我試着更新它,因爲我需要1.12,但它不起作用。

有誰能告訴我爲什麼會發生這種情況,是因爲apt-get優先於pip嗎?

如何強制更新numpy,或只是通過apt-get刪除安裝的軟件包,而無需刪除將其安裝爲依賴項的整個軟件包(例如sklearn)?

+0

找出關於處理這種事情的虛擬技術可能是值得的 – doctorlove

回答

1

我遇到了Debian中的類似問題。這是我解決(解決方法)這個。

numpy的版本:

  • apt-get的:V1.8,在/usr/lib/python2.7/dist-packages,讓這成爲「路徑1」
  • PIP:V1.12,在/usr/local/lib/python2.7/dist-packages,讓這成爲「PATH2 「

添加BOTH路徑1和路徑2環境變量PYTHONPATH在路徑1之前使路徑2,如果您想要pip版本作爲默認值。

因此,在該外殼配置,說的〜/ .bashrc,加入這一行(PATH1/2與真實路徑替換):

export PYTHONPATH=path2:path1:${PYTHONPATH} 

然後重啓殼。

您可以測試它是否適用於此命令:$ python -c "import numpy; print numpy.__file__",並確保路徑爲path2。


我試過跳過path1,即export PYTHONPATH=path2:${PYTHONPATH},但是這不起作用。