Pipenv#

Pipenv is a Python dependency management tool that combines pip (package installation) and virtualenv (environment management) into a single, streamlined interface. Created by Kenneth Reitz, it aims to bring the best of all packaging worlds to the Python ecosystem.

πŸ‘‰ New to App-Generator? Sign IN with GitHub or Generate Web Apps in no time (free service).

Key features of Pipenv#

  1. Simplified Workflow: Combines virtual environment creation, package installation, and dependency tracking in one tool.

  2. Pipfile and Pipfile.lock: Uses these files instead of requirements.txt to track dependencies. Pipfile is for declaring dependencies, while Pipfile.lock ensures deterministic builds by locking exact versions.

  3. Automatic Virtual Environment Management: Creates and manages virtual environments automatically, typically in a centralized location.

  4. Dependency Resolution: Automatically resolves dependencies between packages to prevent conflicts.

  5. Development vs. Production Dependencies: Distinguishes between packages needed for development and those required in production.

  6. Security Features: Can scan your dependency graph for known security vulnerabilities.

Common Pipenv commands#

  • pipenv install - Create a virtual environment and install dependencies

  • pipenv install package_name - Install a package

  • pipenv install –dev package_name - Install a development dependency

  • pipenv shell - Activate the virtual environment

  • pipenv run python script.py - Run a command in the virtual environment

  • pipenv lock - Generate Pipfile.lock

  • pipenv graph - Show a dependency graph

  • pipenv check - Check for security vulnerabilities

Example Pipfile:

[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "*" django = ">=3.2" [dev-packages] pytest = "*" black = "*" [requires] python_version = "3.9" 

Pipenv sits somewhere between basic pip/virtualenv usage and more comprehensive tools like Poetry, offering a balance of simplicity and powerful dependency management.