2013-02-10 102 views
0

我的主系統python版本是2.7.3。我正在嘗試創建使用版本3.3.0的virtualenv。我安裝了pythonbrew,virtualenv和virtualenvwrapper。用pythonbrew管理不同virtualenv中的python版本

我跟着這個教程:http://technomilk.wordpress.com/2011/07/27/setting-up-our-django-site-environment-with-pythonbrew-and-virtualenv/

基本上運行pythonbrew use 3.3.0,然後創建一個virtualenv中。該教程指出virtualenv將使用pythonbrew使用的版本。但事實並非如此。 virtualenv在啓動時使用2.7.3。當我做pythonbrew use 3.3.0時,它離開了virtualenv,它適用於系統而不是環境。

顯然,pythonbrew有自己的virtualenv包裝,其在教程:http://suvashthapaliya.com/blog/2012/01/sandboxed-python-virtual-environments/

我討厭做它喜歡,雖然。是否有可能使用virtualenvwrapper與pythonbrew(而不是pythonbrew的venv wrapper)能夠選擇爲每個venv使用哪個python版本,並將它們與系統python版本分開?

此外,我不想使用mkvirtualenv -p標誌,因爲這意味着我需要手動安裝python3.3。我寧願堅持使用包管理器來管理python版本。很難相信Python中沒有任何東西等同於Ruby中的RVM ......除非我錯了?

回答

1

也許你應該看看http://pypi.python.org/pypi/pythonbrew/。當我做到了,我用pythonbrew創建了venv

pythonbrew install 2.7.3 
pythonbrew switch 2.7.3 
pythonbrew venv create proj 

像冠軍一樣工作。

我已經開始在我的git repo下面的.folder中創建我的虛擬環境,這樣我就可以在不干擾我的代碼的情況下處理虛擬環境,並在需要時重新構建它。我碰到這個技術的時候,和jenkins一起工作,爲你做git clone,然後你必須弄清楚如何在它周圍建立一個虛擬環境。

Python/proj 
    .proj   <---- Virtual environment is in here! 
     lib 
     site-packages 
    settings 
    requirements 
    apps 

我也有一個bash函數可以爲我工作。

function workon() { 
    if [ -d ~/Python/$1 ] 
    then 
      cd ~/Python/$1 
      if [ -d .$1 ] 
      then 
       . .${1}/bin/activate 
      else 
       . bin/activate 
       cd $1 
      fi 
    fi 
} 

這一個是過於複雜,處理在克隆虛擬環境,以及在新的在虛擬環境內的項目中完成的舊項目。

+0

如果您已閱讀我的整個問題,我確實使用pythonbrew。唯一的區別是我使用'use'命令切換到python版本而不是'switch'命令來創建'venv'。當我使用'use'命令並創建一個'venv'時,'venv'將具有舊版本,而不是我在'use'命令中使用的版本。這個問題與我上面使用'use'命令相比,是否與'switch'相關? – darksky 2013-02-19 14:57:34

+0

其實我認爲這個問題更多的是試圖使用virtualenvwrapper,這就是爲什麼我提供了我的別名,在那種情況下工作。一旦創建了venv,你應該可以切換到別的東西,當你激活venv時,你會在該環境中得到正確的版本。可能是pythonbrew用於當前命令,類似於'LD_LIBRARY = foo runsomething',而switch更像'export LI_LIBRARY = foo'。但是一旦你創建了virtualenv,我會想象它會激活並運行正確的python。 – boatcoder 2013-02-19 20:26:52

+0

當我使用你的指令時:pythonbrew venv create proj |它在這個文件夾樹中創建了一個新的python(2.7.6):user/.pythonbrew/venvs/Python-2.7.6/proj ...我現在如何在這個虛擬環境中安裝東西?我應該從Python-2.7開始工作嗎?6文件夾內venvs?通常用pythonbrew我會從任何文件夾工作,但爲此,你似乎需要在這個特定的文件夾中工作,並在這裏安裝額外的工具/庫。您的反饋將非常感謝。 – Joe 2014-01-13 13:00:09

相關問題