2013-02-10 31 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

相关问题