使用pythonbrew管理不同virtualenv中的python版本

时间:2013-02-10 21:00:40

标签: python virtualenv virtualenvwrapper pythonbrew

我的主系统python版本是2.7.3。我正在尝试创建一个使用版本3.3.0的virtualenv。我安装了pythonbrew,virtualenv和virtualenvwrapper。

我遵循了本教程: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包装器)来选择每个venv使用哪个python版本,并将它们与系统python版本分开?

另外,我不想使用mkvirtualenv -p标志,因为这意味着我需要手动安装python3.3。我宁愿坚持使用包管理器来管理python版本。很难相信python中的任何内容都等同于ruby中的RVM ......除非我弄错了?

1 个答案:

答案 0 :(得分: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合作时遇到了这种技术,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
}

对于在虚拟环境中完成克隆的旧项目以及虚拟环境在项目内部的新项目,这个过于复杂。