Added pip article to the KB

This commit is contained in:
Michele Cereda
2023-02-04 15:49:31 +01:00
parent 4e2c1374a6
commit 2b53bad9c9
2 changed files with 62 additions and 18 deletions

57
knowledge base/pip.md Normal file
View File

@@ -0,0 +1,57 @@
# PIP
Package installer for Python.
1. [TL;DR](#tldr)
2. [Configuration](#configuration)
3. [Further readings](#further-readings)
## TL;DR
```sh
# Install packages.
pip install 'yamllint'
pip install --user 'ansible'
# Upgrade packages.
pip install -U 'pip'
# Upgrade the included `pip` executable on Mac OS X.
~/Library/Python/3.8/bin/pip3 install --user --upgrade 'pip'
# Upgrade all currently installed packages.
pip install --requirement <(pip freeze | sed 's/==/>=/') --upgrade
# Generate a list of the outdated packages.
pip list --outdated
# Remove orphaned dependencies.
# Requires `pip-autoremove`.
pip-autoremove
```
## Configuration
INI format files, on those levels:
Level | Scope | File locations
---|---|---
global | System-wide, shared | The `pip` subdirectory in any of the directories defined in `XDG_CONFIG_DIRS` if it exists (i.e. `/etc/xdg/pip/pip.conf`)<br/>`/etc/pip.conf`
user | Per-user | `$HOME/.config/pip/pip.conf`<br/>`$HOME/.pip/pip.conf` (legacy)
site | Per-environment | `$VIRTUAL_ENV/pip.conf`
shell | Active shell session | Value of `PIP_CONFIG_FILE`
When multiple configuration exist, pip **merges** them in the following order:
1. shell
1. global
1. user
1. site
Latter files override values from previous files, i.e. the global timeout specified in the global file will be superseded by the one defined in the user file.
## Further readings
- [Configuration]
[configuration]: https://pip.pypa.io/en/stable/topics/configuration/

View File

@@ -18,23 +18,6 @@ F"{name.lower()} is funny."
unique_list = list(set(redundant_list))
```
Maintenance:
```sh
# Generate a list of the outdated packages.
pip list --outdated
# Upgrade all packages.
pip install --requirement <(pip freeze | sed 's/==/>=/') --upgrade
# Remove orphaned dependencies.
# Requires `pip-autoremove`.
pip-autoremove
# Upgrade the included `pip` executable on Mac OS X.
~/Library/Python/3.8/bin/pip3 install --user --upgrade pip
```
## Web servers
### Flask
@@ -93,10 +76,11 @@ python hello.py
## Further readings
- [PIP]
- [How To Update All Python Packages]
- [invl/pip-autoremove]
- [Data types]
- [F-strings
- [F-strings]
- [How to filter list elements in Python]
- [Logging]
- [Flask at first run: do not use the development server in a production environment]
@@ -106,6 +90,9 @@ python hello.py
- [An intro to threading in Python]
- [ThreadPoolExecutor in Python: the complete guide]
<!-- internal references -->
[pip]: ./pip.md
<!-- external references -->
[*args and **kwargs in python]: https://www.geeksforgeeks.org/args-kwargs-python/
[an intro to threading in python]: https://realpython.com/intro-to-python-threading/