> For the complete documentation index, see [llms.txt](https://brain.nathanarthur.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://brain.nathanarthur.com/programming-languages/python/development-environments.md).

# Development Environments

![https://xkcd.com/1987/](/files/-LicsqjKagG5hvkSS2Ax)

[venv](https://docs.python.org/3/library/venv.html) - Part of the standard library. "The [`venv`](https://docs.python.org/3/library/venv.html#module-venv) module provides support for creating lightweight “virtual environments” with their own site directories, optionally isolated from system site directories. Each virtual environment has its own Python binary (which matches the version of the binary that was used to create this environment) and can have its own independent set of installed Python packages in its site directories."

## Pipenv

[Pipenv](https://docs.pipenv.org/en/latest/#pipenv-python-dev-workflow-for-humans) #software - "**Pipenv** is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world. *...* 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: A Guide to the New Python Packaging Tool](https://realpython.com/pipenv-guide/) #article - "Pipenv is a packaging tool for Python that solves some common problems associated with the typical workflow using `pip`, `virtualenv`, and the good old `requirements.txt`."

[Pipenv Crash Course](https://www.youtube.com/watch?v=6Qmnh5C4Pmo) #video - "Create a better Python workflow by using Pipenv which allows you to install Python packages within a virtual environment easily."

[Pipfile vs setup.py](https://docs.pipenv.org/en/latest/advanced/#pipfile-vs-setup-py) #article - Advice on using Pipenv inside a library as opposed to an application.

[PyCharm: Configure a Pipenv environment](https://www.jetbrains.com/help/pycharm/pipenv.html#Pipenv.xml) #article - "To use Pipenv with PyCharm, you need to implement several preparation steps."

[Why you should use pyenv + Pipenv for your Python projects](https://hackernoon.com/reaching-python-development-nirvana-bb5692adf30c) #article - "The missing guide for setting up a great local development workflow for your Python projects."


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://brain.nathanarthur.com/programming-languages/python/development-environments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
