| title | Virtual environments |
|---|---|
| author | Pierce Edmiston |
| theme | metropolis |
$ which python
/usr/local/bin/python
$ source ~/.venvs/madpy/bin/activate
(madpy) $ which python
/Users/pierce/.venvs/madpy/bin/python
(madpy) $ which pip
/Users/work/.venvs/madpy/bin/pip
Different projects have different dependencies.
Project A needs pandas==0.18.0.
Project B needs pandas==0.16.0.
- Put all venvs in a common folder.
~/.venvs/project-a/
~/.venvs/project-b/
- Put venvs in the project root.
project-a/venv/
project-b/venv/
- Use
venvmodule in the standard library.
$ python3 -m venv ~/.venvs/project-a
$ source ~/.venvs/project-a/bin/activate
(project-a) $- For python2, use
virtualenv.
$ pip install virtualenv # third party
$ virtualenv ~/.venvs/project-a
$ source ~/.venvs/project-a/bin/activate
(project-a) $Installing
google_surveyin a virtualenv.
# Create and activate new python3 virtualenv named madpy2
$ python3 -m venv ~/.venvs/madpy2
$ source ~/.venvs/madpy2/bin/activate
# Install google_survey from github
(madpy2) $ pip install \
git+git://github.com/madison-python/google-survey.git#egg=google_survey
# Test out google_survey
(madpy2) $ python -m google_survey madpy-habits-survey.yaml \
> results.csv
# Deactivate
(madpy2) $ deactivate
$virtualenvwrapper is a wrapper around venv creation.
$ mkvirtualenv project-a
$ workon project-a
(project-a) $$ pip install virtualenvwrapper # !!! bootstrapping problem !!!# contents of ~/.bash_profile
# ...
export WORKON_HOME=$HOME/.venvs
source /usr/local/bin/virtualenvwrapper.sh
So you want to work on a new project, and you've got a text file of requirements to install.
$ python3 -m venv ~/.venvs/project-a
$ source ~/.venvs/project-a/bin/activate
(project-a) $ pip install -r requirements.txt
(project-a) $$ mkvirtualenv project-a -r requirements.txt
(project-a) $virtualenvwrapper # list of commands
ls $VIRTUALENVWRAPPER_HOOK_DIR # list of hooks$ pip2 install virtualenvwrapper
$ mkvirtualenv project-a # python2
$ mkvirtualenv --python=python3 project-a # python3
$ pip3 install virtualenvwrapper
$ mkvirtualenv project-a # python3
$ mkvirtualenv --python=python2 project-a # python2
pip3 install virtualenvwrappervim ~/.bash_profile← export WORKON_HOME and source virtualenvwrapper.shsource ~/.bash_profilemkvirtualenv project-aworkon project-a
- pyenv
- Canopy by Enthought
- Anaconda by Continuum