2014-01-22 57 views
0

我真的和virtualenv處理軟件包有點混淆。我在OSX上,並安裝了python2和3以及Homebrew,之後是pip install virtualenvvirtualenv如何與包一起使用?

在終端

cd Virtualenv/MyTestEnv 
. bin/activate 
pip install numpy 

將安裝numpy的進入,如果我運行ENV中我的程序只能訪問我的virtualenv文件夾。從我讀到的,它通過修改系統$ PATH來完成。 然而,當我嘗試運行與numpy的程序我不能:

​​

節目只有兩行:

#!/usr/bin/env python 
import numpy 

當我做pip list numpy的被顯示爲已安裝?這是hashbang的問題嗎? 幫助將不勝感激!

+1

首先,'$ PATH'與網站包的去向無關,這是shell用來查找可執行文件的東西。 '$ PYTHONPATH'指定了Python的'sys.path'的起始值。 – abarnert

+1

但是,您可能會以某種方式運行系統範圍的「pip」而不是virtualenv的「pip」。如果您使用的是最新版本,我相信它可以在virtualenv中檢測到您正在運行系統'pip',並且無論如何給您一個錯誤/警告或安裝到virtualenv,所以...您是否使用'pip' 1.5?如果沒有,請嘗試先升級。 – abarnert

+0

另外,請記住,OS X已經有自己的Python 2.7,所以通過安裝另一個通過Homebrew,你打開了一堆你可能不想處理的蠕蟲。例如,你的路徑中的第一個'pip'可以很容易地是Apple Python 2.7'pip',而'python'是Homebrew Python 2.7(尤其是因爲兩個安裝都喜歡將腳本安裝到'/ usr/local/bin'中,而Python的消除歧義的標準嘗試 - 給出'python2.7'和'pip-2.7'以及類似的名字 - 當它們都是2.7時沒有幫助)。所以,如果你實際上不需要Homebrew 2.7,我會卸載它。 – abarnert

回答

0

我設法解決我的問題。

首先我修改了我的.bashrc只允許PIP時的virtualenv是:

# pip should only run if there is a virtualenv currently activated 
export PIP_REQUIRE_VIRTUALENV=true 
# cache pip-installed packages to avoid re-downloading 
export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache 
syspip(){ 
    PIP_REQUIRE_VIRTUALENV="" pip "[email protected]" 
} 

然後,以確保用戶安裝的二進制文件的優先級我添加到了我的.bash_profile ​​

1

這就是問題:

#!/usr/bin/env python 

另一種從virtualenv運行python的方式對我來說更自然是

MyTestEnv/bin/python wordsrt.py 

試試這個。

相關問題