I installed python 3.3.1 on ubuntu lucid and successfully created a virtualenv as below
virtualenv envpy331 --python=/usr/local/bin/python3.3 this created a folder envpy331 on my home dir.
I also have virtualenvwrapper installed.But in the docs only 2.4-2.7 versions of python are supported..Has anyone tried to organize the python3 virtualenv ? If so, can you tell me how ?
9 Answers
If you already have python3 installed as well virtualenvwrapper the only thing you would need to do to use python3 with the virtual environment is creating an environment using:
which python3 #Output: /usr/bin/python3 mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment Or, (at least on OSX using brew):
mkvirtualenv --python=`which python3` nameOfEnvironment Start using the environment and you'll see that as soon as you type python you'll start using python3
8You can make virtualenvwrapper use a custom Python binary instead of the one virtualenvwrapper is run with. To do that you need to use VIRTUALENV_PYTHON variable which is utilized by virtualenv:
$ export VIRTUALENV_PYTHON=/usr/bin/python3 $ mkvirtualenv -a myproject myenv Running virtualenv with interpreter /usr/bin/python3 New python executable in myenv/bin/python3 Also creating executable in myenv/bin/python (myenv)$ python Python 3.2.3 (default, Oct 19 2012, 19:53:16) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. 3The latest version of virtualenvwrapper is tested under Python3.2. Chances are good it will work with Python3.3 too.
0On Ubuntu; using mkvirtualenv -p python3 env_name loads the virtualenv with python3.
Inside the env, use python --version to verify.
virtualenvwrapper now lets you specify the python executable without the path.
So (on OSX at least)mkvirtualenv --python=python3 nameOfEnvironment will suffice.
You can add this to your .bash_profile or similar:
alias mkvirtualenv3='mkvirtualenv --python=`which python3`' Then use mkvirtualenv3 instead of mkvirtualenv when you want to create a python 3 environment.
I find that running
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 and
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4 in the command line on Ubuntu forces mkvirtualenv to use python3 and virtualenv-3.4. One still has to do
mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment to create the environment. This is assuming that you have python3 in /usr/bin/python3 and virtualenv-3.4 in /usr/local/bin/virtualenv-3.4.
1This post on the bitbucket issue tracker of virtualenvwrapper may be of interest. It is mentioned there that most of virtualenvwrapper's functions work with the venv virtual environments in Python 3.3.
I added export VIRTUALENV_PYTHON=/usr/bin/python3 to my ~/.bashrc like this:
export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENV_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh then run source .bashrc
and you can specify the python version for each new env mkvirtualenv --python=python2 env_name