pipenv#
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.
Installation#
pip install pipenv
Note
Generally, keep both Pipfile
and Pipfile.lock
in version control.
Pipfile
#
Pipfile
s contain information for the dependencies of the project, and supersedes the requirements.txt
file used in most Python projects.
Import from requirements.txt
#
If there is no Pipfile
the install command will search for a requirement.txt
and creates a Pipfile
with its content.
pipenv install
Pipfile.lock
#
This file lock all dependencies of the current installed packages
pipenv lock
Packages#
Install#
*
meant the latest version on that level
# Install from requirements.txt
$ pipenv install
# Install one package
$ pipenv install <packagename>
$ pipenv install <packagename>=='<version>'
$ pipenv install Flask=='0.11.*'
# Install dev packages
$ pipenv install --dev <packagename>
Uninstall#
# uninstall one package
$ pipenv uninstall <packagename>
# uninstall all packages
$ pipenv uninstall --all
# uninstall all dev packages
$ pipenv uninstall --all-dev
Update#
Update all installed packages to the latest pip version
pipenv update
Run#
pipenv shell#
Each virtualenvironemnt has its own shell. In order to access it you have to launch it.
# Goto project folder with Pipfile
cd myproject
# Launch virtual environment
pipenv shell
# Exit virtual environment
exit
Run command in pipenv#
If you don’t want to use the virtual environment shell you can also just launch one command with:
pipenv run <commandname>
pipenv run python app.py
Virtual environment#
Create new pipenv#
In order to create a new virtual environment define the python version.
pipenv --python 3.6
Creating a new virtual environment with a specific python executable :
pipenv --python <path\to\python.exe\>
Remove pipenv#
If you want to remove a virtual envrironment launch
pipenv --rm
Dependency Graph#
pipenv graph
Workflow#
# Goto git repo
cd myproject
# Install environment if there is a Pipfile
# Also imports from requirements.txt if there is one
pipenv install
# Add new package to the project
pipenv install <package>
# Activate Pipenv shell
pipenv shell
python --version
# Lock all dependencies in file Pipenv.lock
pipenv lock
# Run environment for project
pipenv run <command>
Running jupyter notebook with pipenv#
After creating the pipenv virtual env, make sure ipykernel is installed as well:
pipenv install ipykernel
Activate the project’s virtual environment:
pipenv shell
Then connect the environment to a kernel:
python -m ipykernel install --user --display-name {YOUR_VIRTUAL_ENV_NAME} --name {YOUR_VIRTUAL_ENV_NAME}
Now, start your jupyter notebook/lab:
jupyter lab
Finally, in jupyter lab, select your new kernel by clicking on Kernel -> change kernel
.
Your newly created kernel should appear in the drop down menu.
If you want to list all environment kernel of your jupyter:
jupyter kernelspec list
Removing environment from jupyter kernel#
If you want to remove the environment kernel:
jupyter kernelspec uninstall {YOUR_VIRTUAL_ENV_NAME}