Skip to content

Instantly share code, notes, and snippets.

@rmoyano
Last active April 11, 2024 20:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rmoyano/2ed9e601d929ae66d74ea266cb342fc5 to your computer and use it in GitHub Desktop.
Save rmoyano/2ed9e601d929ae66d74ea266cb342fc5 to your computer and use it in GitHub Desktop.
Pipenv cheatsheet

Pipenv cheatsheet

Installation

user@notebook:~/repos/pipenv$ pip install pipenv

Activate shell:

user@notebook:~/repos/pipenv$ pip install pipenv
Defaulting to user installation because normal site-packages is not writeable
Collecting pipenv
  Downloading pipenv-2023.12.1-py3-none-any.whl (3.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 9.8 MB/s eta 0:00:00
Collecting virtualenv>=20.24.2
  Downloading virtualenv-20.25.1-py3-none-any.whl (3.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 11.2 MB/s eta 0:00:00
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from pipenv) (2020.6.20)
Collecting setuptools>=67
  Downloading setuptools-69.2.0-py3-none-any.whl (821 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 821.5/821.5 KB 9.7 MB/s eta 0:00:00
Collecting filelock<4,>=3.12.2
  Downloading filelock-3.13.4-py3-none-any.whl (11 kB)
Collecting distlib<1,>=0.3.7
  Downloading distlib-0.3.8-py2.py3-none-any.whl (468 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 468.9/468.9 KB 10.9 MB/s eta 0:00:00
Collecting platformdirs<5,>=3.9.1
  Using cached platformdirs-4.2.0-py3-none-any.whl (17 kB)
Installing collected packages: distlib, setuptools, platformdirs, filelock, virtualenv, pipenv
Successfully installed distlib-0.3.8 filelock-3.13.4 pipenv-2023.12.1 platformdirs-4.2.0 setuptools-69.2.0 virtualenv-20.25.1

Verify Pipfile has been created:

(cicd) user@notebook:~/repos/pipenv$ ls
LICENSE  main.py  Pipfile  README.md

Deactivate virtualenv and exit shell:

(cicd) user@notebook:~/repos/pipenv$ exit
exit
user@notebook:~/repos/pipenv$ 

Warning: Do not use deactive command, it does not behave in the same way as virtualenv does.

Package management

Install

Install a package:

(cicd) user@notebook:~/repos/pipenv$ pipenv install fastapi
Installing fastapi...
Resolving fastapi...
Added fastapi to Pipfile's [packages] ...
✔ Installation Succeeded
Pipfile.lock not found, creating...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [dev-packages] dependencies...
Updated Pipfile.lock (72b2f5f2bf4e24d04303d3d94905e4d56656941323131731b9f2f83a9a474d6a)!
Installing dependencies from Pipfile.lock (474d6a)...

Pipfile.lock should have been created:

(cicd) user@notebook:~/repos/pipenv$ ls
LICENSE  main.py  Pipfile  Pipfile.lock  README.md

Install many packages like pip does:

(cicd) rmoyano@thinkpad:~/code/cicd$ pipenv install requests flask
Installing requests...
Resolving requests...
Added requests to Pipfile's [packages] ...
✔ Installation Succeeded
Installing flask...
Resolving flask...
Added flask to Pipfile's [packages] ...
✔ Installation Succeeded
Pipfile.lock (b6b148) out of date, updating to (84c501)...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [dev-packages] dependencies...
Updated Pipfile.lock (0f41c297379e4288f692df184d9964a13184e3b54c26d264944984ceb884c501)!
Installing dependencies from Pipfile.lock (84c501)...
(cicd) rmoyano@thinkpad:~/code/cicd$ pip list
Package            Version
------------------ --------
annotated-types    0.6.0
anyio              4.3.0
blinker            1.7.0
certifi            2024.2.2
charset-normalizer 3.3.2
click              8.1.7
exceptiongroup     1.2.0
fastapi            0.110.0
Flask              3.0.3
idna               3.7
itsdangerous       2.1.2
Jinja2             3.1.3
MarkupSafe         2.1.5
pip                24.0
pydantic           2.7.0
pydantic_core      2.18.1
requests           2.31.0
setuptools         69.1.0
sniffio            1.3.1
starlette          0.36.3
typing_extensions  4.11.0
urllib3            2.2.1
Werkzeug           3.0.2
wheel              0.42.0

Install an specific version (Fastapi 0.110.0):

(cicd) user@notebook:~/repos/pipenv$ pipenv install fastapi==0.110.0
Installing fastapi==0.110.0...
Resolving fastapi==0.110.0...
Added fastapi to Pipfile's [packages] ...
✔ Installation Succeeded
Pipfile.lock (e4eef2) out of date, updating to (b6b148)...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [dev-packages] dependencies...
Updated Pipfile.lock (00284ff6c75c59871606c7b2e6d80bc86df4f6aaec3be9a890d850bd55b6b148)!
Installing dependencies from Pipfile.lock (b6b148)...

(cicd) user@notebook:~/repos/pipenv$ pip list
Package           Version
----------------- -------
annotated-types   0.6.0
anyio             4.3.0
exceptiongroup    1.2.0
fastapi           0.110.0
idna              3.7
pip               24.0

Update

Update one package to an specific version (Fastapi 0.109.2 to 0.110.0):

(cicd) rmoyano@thinkpad:~/code/cicd$ pip list
Package           Version
----------------- -------
annotated-types   0.6.0
anyio             4.3.0
exceptiongroup    1.2.0
fastapi           0.109.2
idna              3.7
pip               24.0


(cicd) rmoyano@thinkpad:~/code/cicd$ pipenv update fastapi==0.110.0
Building requirements...
Resolving dependencies...
✔ Success!
Building requirements...
Resolving dependencies...
✔ Success!
Installing dependencies from Pipfile.lock (b6b148)...
All dependencies are now up-to-date!
(cicd) rmoyano@thinkpad:~/code/cicd$ pip list
Package           Version
----------------- -------
annotated-types   0.6.0
anyio             4.3.0
exceptiongroup    1.2.0
fastapi           0.110.0
idna              3.7
pip               24.0

Uninstall

Uninstall a package:

(cicd) user@notebook:~/repos/pipenv$ pipenv uninstall fastapi
Removing fastapi from Pipfile.lock...
Removed fastapi from Pipfile category packages
Uninstalling fastapi...
Found existing installation: fastapi 0.110.1
Uninstalling fastapi-0.110.1:
  Successfully uninstalled fastapi-0.110.1

Locking [packages] dependencies...
Locking [dev-packages] dependencies...
Updated Pipfile.lock (fedbd2ab7afd84cf16f128af0619749267b62277b4cb6989ef16d4bef6e4eef2)!

Uninstall all packages:

(cicd) user@notebook:~/repos/pipenv$ pipenv uninstall --all
Un-installing all [dev-packages] and [packages]...
Found 10 installed package(s), purging...
Found existing installation: exceptiongroup 1.2.0
Uninstalling exceptiongroup-1.2.0:
  Successfully uninstalled exceptiongroup-1.2.0
Found existing installation: idna 3.7
Uninstalling idna-3.7:
  Successfully uninstalled idna-3.7
Found existing installation: typing_extensions 4.11.0
Uninstalling typing_extensions-4.11.0:
  Successfully uninstalled typing_extensions-4.11.0
Found existing installation: sniffio 1.3.1
Uninstalling sniffio-1.3.1:
  Successfully uninstalled sniffio-1.3.1
Found existing installation: anyio 4.3.0
Uninstalling anyio-4.3.0:
  Successfully uninstalled anyio-4.3.0
Found existing installation: annotated-types 0.6.0
Uninstalling annotated-types-0.6.0:
  Successfully uninstalled annotated-types-0.6.0
Found existing installation: starlette 0.36.3
Uninstalling starlette-0.36.3:
  Successfully uninstalled starlette-0.36.3
Found existing installation: pydantic_core 2.18.1
Uninstalling pydantic_core-2.18.1:
  Successfully uninstalled pydantic_core-2.18.1
Found existing installation: fastapi 0.110.0
Uninstalling fastapi-0.110.0:
  Successfully uninstalled fastapi-0.110.0
Found existing installation: pydantic 2.7.0
Uninstalling pydantic-2.7.0:
  Successfully uninstalled pydantic-2.7.0

Environment now purged and fresh!

(cicd) user@notebook:~/repos/pipenv$ pip list
Package    Version
---------- -------
pip        24.0
setuptools 69.1.0
wheel      0.42.0

List packages and their dependencies:

(cicd) user@notebook:~/repos/pipenv$ pipenv requirements
-i https://pypi.org/simple
blinker==1.7.0; python_version >= '3.8'
certifi==2024.2.2; python_version >= '3.6'
charset-normalizer==3.3.2; python_full_version >= '3.7.0'
click==8.1.7; python_version >= '3.7'
flask==3.0.3; python_version >= '3.8'
idna==3.7; python_version >= '3.5'
itsdangerous==2.1.2; python_version >= '3.7'
jinja2==3.1.3; python_version >= '3.7'
markupsafe==2.1.5; python_version >= '3.7'
requests==2.31.0; python_version >= '3.7'
urllib3==2.2.1; python_version >= '3.8'
werkzeug==3.0.2; python_version >= '3.8'
(cicd) user@notebook:~/repos/pipenv$ pipenv graph
flask==3.0.3
├── blinker [required: >=1.6.2, installed: 1.7.0]
├── click [required: >=8.1.3, installed: 8.1.7]
├── itsdangerous [required: >=2.1.2, installed: 2.1.2]
├── Jinja2 [required: >=3.1.2, installed: 3.1.3]
│   └── MarkupSafe [required: >=2.0, installed: 2.1.5]
└── werkzeug [required: >=3.0.0, installed: 3.0.2]
    └── MarkupSafe [required: >=2.1.1, installed: 2.1.5]
requests==2.31.0
├── certifi [required: >=2017.4.17, installed: 2024.2.2]
├── charset-normalizer [required: >=2,<4, installed: 3.3.2]
├── idna [required: >=2.5,<4, installed: 3.7]
└── urllib3 [required: >=1.21.1,<3, installed: 2.2.1]
@penguinar
Copy link

nice

@rmoyano
Copy link
Author

rmoyano commented Apr 11, 2024

nice

Thanks @penguinar!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment