From aa9a9dd1b42f8e17f625a3d6c5466753b19a4428 Mon Sep 17 00:00:00 2001 From: Azul Date: Thu, 12 Jan 2017 16:00:50 +0000 Subject: [PATCH] python docs: add an example for a virtualenv and pip through nix-shell --- doc/languages-frameworks/python.md | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/doc/languages-frameworks/python.md b/doc/languages-frameworks/python.md index 82aeb112c93..7fd26c88e38 100644 --- a/doc/languages-frameworks/python.md +++ b/doc/languages-frameworks/python.md @@ -804,6 +804,43 @@ If you want to create a Python environment for development, then the recommended method is to use `nix-shell`, either with or without the `python.buildEnv` function. +### How to consume python modules using pip in a virtualenv like I am used to on other Operating Systems ? + +This is an example of a `default.nix` for a `nix-shell`, which allows to consume a `virtualenv` environment, +and install python modules through `pip` the traditional way. + +Create this `default.nix` file, together with a `requirements.txt` and simply execute `nix-shell`. + +``` + +th import {}; +with pkgs.python27Packages; + +buildPythonPackage { + name = "impurePythonEnv"; + buildInputs = [ + taglib + openssl + git + libxml2 + libxslt + libzip + python27Full + python27Packages.virtualenv + python27Packages.pip + stdenv + zlib ]; + src = null; + # When used as `nix-shell --pure` + shellHook = '' + unset http_proxy + export GIT_SSL_CAINFO=/etc/ssl/certs/ca-bundle.crt + virtualenv --no-wheel --no-setuptools venv + export PATH=$PWD/venv/bin:$PATH + pip install -r requirements.txt --no-use-wheel + ''; +} +``` ## Contributing