mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-09 05:44:23 +00:00
feat: article about pipx
This commit is contained in:
@@ -40,12 +40,12 @@ pip-autoremove
|
||||
|
||||
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`
|
||||
| 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:
|
||||
|
||||
@@ -59,6 +59,7 @@ Latter files override values from previous files, i.e. the global timeout specif
|
||||
## Further readings
|
||||
|
||||
- [Configuration]
|
||||
- [`pipx`][pipx]
|
||||
|
||||
<!--
|
||||
References
|
||||
@@ -66,3 +67,6 @@ Latter files override values from previous files, i.e. the global timeout specif
|
||||
|
||||
<!-- Upstream -->
|
||||
[configuration]: https://pip.pypa.io/en/stable/topics/configuration/
|
||||
|
||||
<!-- Knowledge base -->
|
||||
[pipx]: pipx.md
|
||||
|
||||
57
knowledge base/pipx.md
Normal file
57
knowledge base/pipx.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Pipx
|
||||
|
||||
Tool to help install and run end-user applications written in Python.
|
||||
|
||||
It acts as a package manager using [`pip`][pip] behind the scenes, but is focused on installing and managing Python packages that can be run from the command line directly as applications.
|
||||
|
||||
The `install` command automatically creates a Python virtual environment, installs the package, and adds the package's associated applications (entry points) to a location in PATH. For this reason, `pipx` never needs to run as `root`.<br/>
|
||||
For example, `pipx install 'pycowsay'` makes the `pycowsay` command available globally, but sandboxes the package in its own virtual environment.
|
||||
|
||||
## Table of contents <!-- omit in toc -->
|
||||
|
||||
1. [TL;DR](#tldr)
|
||||
1. [Further readings](#further-readings)
|
||||
|
||||
## TL;DR
|
||||
|
||||
```sh
|
||||
# Installation.
|
||||
python3 -m pip install --user 'pipx'
|
||||
brew install 'pipx'
|
||||
|
||||
# Add pipx's binary folders to PATH.
|
||||
pipx ensurepath
|
||||
python3 -m pipx ensurepath
|
||||
|
||||
# Install applications.
|
||||
pipx install 'ansible'
|
||||
|
||||
# List installed applications.
|
||||
pipx list
|
||||
|
||||
# Run applications *without* installing them globally.
|
||||
pipx run 'xkcdpass'
|
||||
pipx run --spec 'package' 'app_with_different_name_in_the_package'
|
||||
pipx run 'yamllint==1.31.0'
|
||||
|
||||
# Upgrade single applications.
|
||||
pipx upgrade 'pip-autoremove'
|
||||
|
||||
# Upgrade all installed applications.
|
||||
pipx upgrade-all
|
||||
```
|
||||
|
||||
## Further readings
|
||||
|
||||
- [Website]
|
||||
- [Pip]
|
||||
|
||||
<!--
|
||||
References
|
||||
-->
|
||||
|
||||
<!-- Upstream -->
|
||||
[website]: https://pypa.github.io/pipx/
|
||||
|
||||
<!-- Knowledge base -->
|
||||
[pip]: pip.md
|
||||
@@ -183,6 +183,7 @@ See [concurrent execution] for more information.
|
||||
|
||||
- [Dictionaries]
|
||||
- [PIP]
|
||||
- [`pipx`][pipx]
|
||||
- [How To Update All Python Packages]
|
||||
- [invl/pip-autoremove]
|
||||
- [Data types]
|
||||
@@ -199,6 +200,8 @@ See [concurrent execution] for more information.
|
||||
|
||||
## Sources
|
||||
|
||||
All the references in the [further readings] section, plus the following:
|
||||
|
||||
- [10 python one-liners for dictionaries]
|
||||
- [Logging library]
|
||||
- [Subprocess library]
|
||||
@@ -215,7 +218,11 @@ See [concurrent execution] for more information.
|
||||
[subprocess library]: https://docs.python.org/3/library/subprocess.html
|
||||
|
||||
<!-- In-article sections -->
|
||||
[further readings]: #further-readings
|
||||
|
||||
<!-- Knowledge base -->
|
||||
[pip]: pip.md
|
||||
[pipx]: pipx.md
|
||||
|
||||
<!-- Others -->
|
||||
[*args and **kwargs in python]: https://www.geeksforgeeks.org/args-kwargs-python/
|
||||
|
||||
Reference in New Issue
Block a user