Python: pipenv


# macOS
$ pip install pipenv
$ pip3 install pipenv

# some old Linux distro
$ sudo pip install pipenv

Also see:

Getting Help

$ pipenv --help
$ pipenv shell --help
$ pipenv install --help
$ pipenv run --help
$ pipenv uninstall --help


$ cd pyproject

$ pipenv --python 3.6
Creating a virtualenv for this project...
✔ Successfully created virtual environment!
Virtualenv location: /Users/username/.local/share/virtualenvs/pyproject-7Ewg1bUT
Creating a Pipfile for this project...

Spawns a shell within the virtualenv. To deactivate, exit the shell session with exit or CTRL-D

$ pipenv shell
 . /Users/username/.local/share/virtualenvs/pyproject-7Ewg1bUT/bin/activate
$ pipenv install requests
$ pipenv install pytest --dev

$ ls
Pipfile		Pipfile.lock
$ cat Pipfile
url = ""
verify_ssl = true
name = "pypi"

requests = "*"


python_version = "3.6"
$ cat Pipfile.lock
    "_meta": {
        "hash": {
            "sha256": "b8c2e1580c53e383cfe4254c1f16560b855d984fde8b2beb3bf6ee8fc2fe5a22"
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.6"
        "sources": [
                "name": "pypi",
                "url": "",
                "verify_ssl": true
    "default": {
        "requests": {
            "hashes": [
            "index": "pypi",
            "version": "==2.25.0"
        "urllib3": {
            "hashes": [
            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
            "version": "==1.26.2"
    "develop": {
        "pytest": {
            "hashes": [
            "index": "pypi",
            "version": "==6.1.2"
        "toml": {
            "hashes": [
            "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
            "version": "==0.10.2"

Run from script or command line without activating first or using pipenv shell

$ pipenv run python
$ pip uninstall requests
Found existing installation: requests 2.25.0
Proceed (y/n)? y
  Successfully uninstalled requests-2.25.0

Generate/update Pipfile.lock for production with pipenv lock

$ pipenv lock
Locking [dev-packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Updated Pipfile.lock (f65fb2)!

Install using Pipfile.lock only on production

$ pipenv install --ignore-pipfile
Installing dependencies from Pipfile.lock (f65fb2)...

Install including dev packages for development with pipenv install --dev

$ pipenv install --dev
Installing dependencies from Pipfile.lock (f65fb2)...
$ pipenv --help
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

  --where                         Output project home information.
  --venv                          Output virtualenv information.
  --py                            Output Python interpreter information.
  --envs                          Output Environment Variable options.
  --rm                            Remove the virtualenv.
  --bare                          Minimal output.
  --completion                    Output completion (to be executed by the

  --man                           Display manpage.
  --support                       Output diagnostic information for use in
                                  GitHub issues.

  --site-packages / --no-site-packages
                                  Enable site-packages for the virtualenv.
                                  [env var: PIPENV_SITE_PACKAGES]

  --python TEXT                   Specify which version of Python virtualenv
                                  should use.

  --three / --two                 Use Python 3/2 when creating virtualenv.
  --clear                         Clears caches (pipenv, pip, and pip-tools).
                                  [env var: PIPENV_CLEAR]

  -v, --verbose                   Verbose mode.
  --pypi-mirror TEXT              Specify a PyPI mirror.
  --version                       Show the version and exit.
  -h, --help                      Show this message and exit.

Usage Examples:
   Create a new project using Python 3.7, specifically:
   $ pipenv --python 3.7

   Remove project virtualenv (inferred from current directory):
   $ pipenv --rm

   Install all dependencies for a project (including dev):
   $ pipenv install --dev

   Create a lockfile containing pre-releases:
   $ pipenv lock --pre

   Show a graph of your installed dependencies:
   $ pipenv graph

   Check your installed dependencies for security vulnerabilities:
   $ pipenv check

   Install a local into your virtual environment/Pipfile:
   $ pipenv install -e .

   Use a lower-level pip command:
   $ pipenv run pip freeze

  check      Checks for PyUp Safety security vulnerabilities and against PEP
             508 markers provided in Pipfile.

  clean      Uninstalls all packages not specified in Pipfile.lock.
  graph      Displays currently-installed dependency graph information.
  install    Installs provided packages and adds them to Pipfile, or (if no
             packages are given), installs all packages from Pipfile.

  lock       Generates Pipfile.lock.
  open       View a given module in your editor.
  run        Spawns a command installed into the virtualenv.
  scripts    Lists scripts in current environment config.
  shell      Spawns a shell within the virtualenv.
  sync       Installs all packages specified in Pipfile.lock.
  uninstall  Uninstalls a provided package and removes it from Pipfile.
  update     Runs lock, then sync.

Also See:

Leave a Comment

Your email address will not be published. Required fields are marked *