簡體   English   中英

在Virtualenv環境中安裝python-numpy

[英]Install python-numpy in the Virtualenv environment

我想在Virtualenv環境中安裝python-numpy。 我的系統是Ubuntu 12.04,我的python是2.7.5。 首先我安裝了Virtualenv

$ sudo apt-get install python-virtualenv

然后通過建立一個環境

$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.

激活它

$ . venv/bin/activate

在環境中安裝了python-numpy

$ sudo apt-get install python-numpy

但是,我嘗試在完成上述所有步驟后在環境中導入python中的numpy。 Python告訴我“沒有名為numpy的模塊”。 然而,numpy可以在全球范圍內導入Python。 我試圖刪除和安裝很多次,但它不起作用。 我是Python和Linux的初學者。

即使你在新的virtualenvapt-get仍將在全球范圍內安裝模塊。

您應該在虛擬環境中使用pip install numpy (最簡單的方法),或者使用源目錄的根目錄中的setup.py文件從源代碼編譯和安裝numpy (稍微更難一些, 請參見此處 )。

我還建議你看看virtualenvwrapper ,這使得管理虛擬環境更加友好。

編輯:

應該使用sudo來創建虛擬環境或在其中安裝內容 - 它是您的主文件夾中的目錄,您不需要提升權限來對其進行更改。 如果您使用sudopip將更改您的全局站點包,而不是您的虛擬環境,因此您無法在本地安裝numpy

另一件需要考慮的事情是, 默認情況下,新的virtualenvs將繼承全局site-packages - 即如果Python無法在virtualenv找到本地模塊,Python也將查看您的全局站點包 * 在你的情況下,因為你已經全局安裝numpy (使用apt-get ),當你嘗試在你的虛擬環境中pip install numpy時, pip看到numpy已經在你的Python路徑中並且不在本地安裝它。

你可以:

  1. 創建virtualenv時,請傳遞--no-site-packages選項。 這可以防止新的virtualenv繼承自全局站點包,因此必須在本地安裝所有內容。

  2. 強制pip在本地安裝/升級numpy ,例如使用pip install -U --force numpy


* 從v1.7開始virtualenv的默認行為是不包括全局site-packages目錄。 您可以通過在創建新虛擬環境時傳遞--system-site-packages標志來覆蓋它。

干擾PYTHONPATH的網站包確實擊敗了virtalenv的目的。 對我有用的是指定env我想要通過pip安裝包

例:

pip -E /home/proj1 

proj1是使用virtualenv創建的。

參考: 如何在virtualenv中安裝numpy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM