Files
pipenv/docs/index.md
T
Matt Davis 761a03d088 Doc revisions1 (#5621)
* Begin reviewing the basics docs.

* Check in delta

* More doc revisions.

* Split apart basics docs.

* Refactor based on building docs

* add the files back as markdown.

* more conversions to markdown.

* more conversions to markdown.

* fix markdown formatting.

* convert index to markdown.

* More docs review

* More markdown and doc revisions.

* Fix docs.

* Update doc build requirements.

* fix lint

* Fix build with update/upgrade command.

* remove useless quickstart and update the commands section.

* Fix lint

* change ordering of table of contents.

* fix changelog duplicate headings.

* Start splitting advanced topics.

* minor nits

* Move some sections from advanced to shell.

* remove this section as its stale and kind of off topic.

* move scripts out into its own section.

* Wrap up revisions1

* fix lint

* address PR feedback and other nits.

* fix lint

* Try improving ordering of table of contents, fix issue with indexes.md file location.

* fix lint

* PR feedback.
2023-03-18 08:44:58 +01:00

78 lines
3.0 KiB
Markdown

# Pipenv: Python Dev Workflow for Humans
[![pypi version](https://img.shields.io/pypi/v/pipenv.svg)](https://pypi.python.org/pypi/pipenv) [![MIT License](https://img.shields.io/pypi/l/pipenv.svg)](https://pypi.python.org/pypi/pipenv) [![Supported Versions](https://img.shields.io/pypi/pyversions/pipenv.svg)](https://pypi.python.org/pypi/pipenv)
**Pipenv** is a Python virtualenv management tool that supports a multitude of systems and nicely bridges the gaps between pip, pyenv and virtualenv.
*Linux, macOS, and Windows are all first-class citizens in pipenv.*
It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your `Pipfile` as you install/uninstall packages. It also generates the ever-important `Pipfile.lock`, which is used to produce deterministic builds.
Pipenv is primarily meant to provide users and developers of applications with an easy method to setup a working environment.
The problems that Pipenv seeks to solve are multi-faceted:
- You no longer need to use `pip` and `virtualenv` separately. They work together.
- Managing a `requirements.txt` file with package hashes can be problematic. Pipenv uses `Pipfile` and `Pipfile.lock` to separate abstract dependency declarations from the last tested combination.
- Hashes are documented in the lock file, always. Security considerations are put first.
- Strongly encourage the use of the latest versions of dependencies to minimize security risks [arising from outdated components](https://www.owasp.org/index.php/Top_10-2017_A9-Using_Components_with_Known_Vulnerabilities).
- Gives you insight into your dependency graph (e.g. `$ pipenv graph`).
- Streamline development workflow by supporting local customizations with `.env` files.
## Install Pipenv Today!
The recommended way to install pipenv on most platforms is to install from pypi using `pip`:
$ pip install --user pipenv
More detailed installation instructions can be found in the :ref:`installing-pipenv` chapter.
✨🍰✨
## Pipenv Features
- Enables truly *deterministic builds*, while easily specifying *only what you want*.
- Generates and checks file hashes for locked dependencies when installing from `Pipfile.lock`.
- Automatically install required Python version when `pyenv` is available.
- Automatically finds your project home, recursively, by looking for a `Pipfile`.
- Automatically generates a `Pipfile`, if one doesn't exist.
- Automatically creates a virtualenv in a standard customizable location.
- Automatically adds/removes packages to a `Pipfile` when they are installed or uninstalled.
- Automatically loads `.env` files to support customization and overrides.
## Pipenv Documentation
```{toctree}
---
caption: Pipenv Documentation
maxdepth: 2
---
installation
pipfile
cli
commands
configuration
virtualenv
workflows
specifiers
indexes
credentials
shell
docker
scripts
advanced
diagnose
changelog
```
## Contribution Guides
```{toctree}
---
caption: Contributing to Pipenv
maxdepth: 2
---
dev/contributing
```