Usually you don't want to mess your system python with project dependencies,
you can use this to create an isolated python environment, the new environment has
include, it also has its own
all other packages will be installed inside its own folders.
virtualenv YOUR_NEW_ENV_DIR to create a new environment.
To use or work with such isolated environments, usually you need to tweak your
PATH environment variable, it give it precedence over system default python. But you don't need to do it manually, each virtual environment has a bash script inside its own
bin directory, with all settings necessary to activate it, all you need to do is to run
deactivate to deactivate current virtualenv.
rm -r /path/to/your_virtualenv to delete the virtualenv folder.
To make it easier to use, you could use some tools like virtualenvwrapper.
Basically, virtualenvwrapper provides utilities to do virtualenv and project management, the most important ones include: - workon: switch between different virtual environments, setup path and environment variables - mkvirtualenv: create a new python environment - mkproject: create a new python project directory, link to a virtualenv
It also has tools like: cdvirtualenv, cdsitepackages, setvirtualenvproject, cdproject, lsvirtualenv and many others. It create all your python einvironment in the same place like
~/.virtualenv(this is customizable). It also manage all your python projects inside a project root directory(customizable). Since I always use the latest python3.x for my own projects, I don't use this tool a lot.
pyenv is something different, it is pure shell script, no python dependencies. It can install different versions and flavors of python, which could be grouped like this:
python 2.x python 3.x pypy2 pypy3 stackless miniconda anaconda ironpython jython
it will download the specified python installation files from official websites, and install them to
~/.pyenv(this is customizable).
To use a specific python version or flavor for your specific project, you simply either put a
.python-version file inside the project root folder, when you enter this project folder, pyenv will get the version specified in this
.python-version file, and switch to use the right binaries and packages, if you
.python-version file contains
python will be using
python3.0.1, it is really handy. You could even override system default python by setting
PYENV_VERSION in your
.bashrc or put a
.python-version file in the root the filesystem.
Another new virtual environment management tool, written in pure python, so support for Windows should be better.
tox aims to automate and standardize testing in python. It does basically only three things: - create virtualenv - install dependencies like pytest, and your package under test - run the tests it is extremely useful if you want to test your code against many different versions or flavours of python.
function profiler line profiler memory profiler objgraph, Object inspector
ipython profile & benchmark shortcuts: %mprun %lprun %timeit %time
reStructuredText: a lightweight markup language to write documents Sphinx: the Python Documentation Generator