As a developer you should have separate virtual environments for every Python based project so that project-wise dependencies can be managed separately. Pipenv is a Python's officially recommended tool for managing Python packages and virtual environments.
In this article I will show how to install Pipenv and discuss some basic usage of Pipenv.
Install Pipenv using Pip
I assume you already have Python installed in your computer. If not then install it first. For detail instructions of installing python check the following articles:
To install Pipenv you also need to make sure that you have Pip installed. Most likely with Python installation you should have Pip already available in your computer. To check this run the following command in your terminal and you should see the Pip version.
$ pip --versionNow run the following command to install Pipenv using Pip.
$ pip install pipenv
Install Pipenv using Homebrew
This section is specifically for Mac user who want to install Pipenv via Homebrew (The missing package manager for Mac OS). It makes the installation process easier and simpler for installing any software packages that Apple didn't.
The good thing of installing Pipenv via Homebrew is that it keeps Pipenv and all of its dependencies in a separated virtual environment, and hence it never mess with the rest of your Python installation. That's cool!
To install Pipenv via Homebrew simply run the following command in your terminal.
$ brew install pipenv
Basic usage of Pipenv
In this section I have listed some basic usage of Pipenv. For a complete list of commands and options visit the Pipenv official docs.
To install a specific package for your project run the following command (package will be added to Pipfile automatically).
$ pipenv install packagenameTo install a specific package for your project as a dev dependency run the following command (package will be added to Pipfile automatically).
$ pipenv install packagename --devTo activate a project's virtualenv, run the following command.
$ pipenv shellTo deactivate a project's virtualenv or exit from a project's virtualenv, type $ exit and hit Enter key or press Ctrl + D together.
To uninstall a specific package from your project run the following command (package will be removed from Pipfile automatically).
$ pipenv uninstall packagenameTo uninstall all packages from your project run the following command (packages will be removed from Pipfile automatically).
$ pipenv uninstall --allTo install all dependencies (from Pipfile) for a project (without dev dependencies) run the following command.
$ pipenv installTo install all dependencies (from Pipfile) for a project (including dev dependencies) run the following command.
$ pipenv install --devTo remove virtualenv of a project run the following command.
$ pipenv --rmTo locate the home of a project run the following command.
$ pipenv --whereTo locate the virtualenv of a project run the following command.
$ pipenv --venvOnce you have your local development completed and now you are ready to push it to production, then you have to update the Pipfile.lock by running the following command. This way, you can ensure that production will have the same environment like your local development.
$ pipenv lockNow to install the project dependencies to production environment run the following command. It informs Pipenv to ignore Pipfile but install packages from Pipfile.lock .
$ pipenv install --ignore-pipfile
Uninstall Pipenv
To uninstall Pipenv using Pip run the following command in your terminal.
$ pip uninstall pipenvTo uninstall Pipenv using Homebrew run the following command in your terminal.
$ brew uninstall pipenv
Summary
As Pipenv is a officially recommended tool for managing Python packages and virtual environments, it's better to switch over Pipenv from pip, virtualenv or venv. The good thing about Pipenv is that it combines the functionality of pip and virtualenv with a single command line interface in a simplified way. That's awesome!
Happy Python coding!
References
Comments
You are welcome to write comments, suggestions, corrections, or any queries related to the article. Your comments may take some time to be appeared. Please be aware that any irrelevant comments will be deleted. Thanks for your understanding, and your respectful & relevant comments!