[英]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的初學者。
即使你在新的virtualenv
, apt-get
仍將在全球范圍內安裝模塊。
您應該在虛擬環境中使用pip install numpy
(最簡單的方法),或者使用源目錄的根目錄中的setup.py
文件從源代碼編譯和安裝numpy
(稍微更難一些, 請參見此處 )。
我還建議你看看virtualenvwrapper
,這使得管理虛擬環境更加友好。
您不應該使用sudo
來創建虛擬環境或在其中安裝內容 - 它是您的主文件夾中的目錄,您不需要提升權限來對其進行更改。 如果您使用sudo
, pip
將更改您的全局站點包,而不是您的虛擬環境,因此您無法在本地安裝numpy
。
另一件需要考慮的事情是, 默認情況下,新的 * 。 在你的情況下,因為你已經全局安裝virtualenvs
將繼承全局site-packages
- 即如果Python無法在virtualenv
找到本地模塊,Python也將查看您的全局站點包numpy
(使用apt-get
),當你嘗試在你的虛擬環境中pip install numpy
時, pip
看到numpy
已經在你的Python路徑中並且不在本地安裝它。
你可以:
創建virtualenv
時,請傳遞--no-site-packages
選項。 這可以防止新的virtualenv
繼承自全局站點包,因此必須在本地安裝所有內容。
強制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創建的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.