Документация : https://pipx.pypa.io
Исходный код : https://github.com/pypa/pipx
Для сравнения с другими инструментами, включая PIPSI, см. Сравнение с другими инструментами.
Предупреждение
Не рекомендуется устанавливать pipx
через pipx
. Если вы хотите сделать это в любом случае, взгляните на проект pipx-in-pipx
и прочитайте об ограничениях там.
brew install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Обновите PIPX с помощью brew update && brew upgrade pipx
.
sudo apt update
sudo apt install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo dnf install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo pacman -S python-pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
pip
на других распределениях: python3 -m pip install --user pipx
python3 -m pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Обновите PIPX с помощью python3 -m pip install --user --upgrade pipx
.
scoop install pipx
pipx ensurepath
Обновите PIPX с scoop update pipx
.
# If you installed python using Microsoft Store, replace `py` with `python3` in the next line.
py -m pip install --user pipx
Возможно (даже наиболее вероятно) вышеуказанное заканчивается с предупреждением, похожим на это:
WARNING: The script pipx.exe is installed in `<USER folder>AppDataRoamingPythonPython3xScripts` which is not on PATH
Если это так, перейдите в упомянутую папку, позволяя вам напрямую запустить исполняемый файл PIPX. Введите следующую строку (даже если вы не получили предупреждение):
.pipx.exe ensurepath
Это добавит как вышеупомянутый путь, так и %USERPROFILE%.localbin
в ваш путь поиска. Перезапустите сеанс терминала и проверьте, что pipx
работает.
Обновите PIPX с py -m pip install --user --upgrade pipx
.
Вы также можете использовать PIPX без его установки. Zipapp можно загрузить из выпусков GitHub, и вы можете вызвать его с помощью интерпретатора Python 3.8+:
python pipx.pyz ensurepath
PIPX имеет предварительную поддержку.
Завершении оболочки доступны, следуя инструкциям, напечатанным с этой командой:
pipx completions
Для получения более подробной информации см. Инструкции по установке.
pipx
? PIPX-это инструмент, который поможет вам установить и запустить приложения конечных пользователей, написанные на Python. Он примерно похож на brew
's Macos, NPX JavaScript и apt
Linux.
Это тесно связано с PIP. Фактически, он использует PIP, но сосредоточен на установке и управлении пакетами Python, которые можно запускать из командной строки непосредственно в качестве приложений.
PIP-это установщик пакета общего назначения как для библиотек, так и для приложений без изоляции среды. PIPX производится специально для установки приложений, так как он добавляет изоляцию, но все же делает приложения доступными в вашей оболочке: PIPX создает изолированную среду для каждого приложения и связанных с ним пакетов.
PIPX не поставляется с PIP, но его установка часто является важной частью начальной загрузки вашей системы.
pipx
устанавливает приложения?По умолчанию PIPX использует тот же индекс пакетов, что и PIP, PYPI. PIPX также может установить из всех других источников PIP CAN, таких как локальный каталог, колесо, GIT URL и т. Д.
Python и PYPI позволяют разработчикам распространять код с «точками ввода консоли». Эти точки входа позволяют пользователям выступать в код Python из командной строки, эффективно действуя как автономные приложения.
PIPX-это инструмент для установки и запуска любой из этих тысяч пакетов, содержащих приложение безопасным, удобным и надежным способом. В некотором смысле, он превращает индекс пакетов Python (PYPI) в большой магазин приложений для приложений Python. Не все пакеты Python имеют входные точки, но многие делают.
Если вы хотите сделать свой пакет совместимой с PIPX, все, что вам нужно сделать, это добавить точку входа в консоли. Если вы пользователь поэзии, используйте эти инструкции. Или, если вы используете Hatch, попробуйте это.
pipx
позволяет вам
install
. Это не гарантирует никаких конфликтов зависимости и чистых удалений!run
Лучше всего, PIPX работает с регулярными разрешениями пользователей, никогда не вызывая sudo pip install
(вы этого не делаете, не так ли?).
pipx
Вы можете установить приложение, запустив
pipx install PACKAGE
Это автоматически создает виртуальную среду, устанавливает пакет и добавляет связанные приложения пакета (точки входа) в место на вашем PATH
. Например, pipx install pycowsay
предоставляет команду pycowsay
доступной во всем мире, но песочницы пакет Pycowsay в своей собственной виртуальной среде. Pipx никогда не нужно бегать как Sudo, чтобы сделать это.
Пример:
>> pipx install pycowsay
installed package pycowsay 2.0.3, Python 3.10.3
These apps are now globally available
- pycowsay
done! ?
>> pipx list
venvs are in /home/user/.local/share/pipx/venvs
apps are exposed on your $PATH at /home/user/.local/bin
package pycowsay 2.0.3, Python 3.10.3
- pycowsay
# Now you can run pycowsay from anywhere
>> pycowsay mooo
____
< mooo >
====
^__^
(oo)_______
(__) )/
||----w |
|| ||
Вы также можете установить из репозитория GIT. Здесь black
используется в качестве примера.
pipx install git+https://github.com/psf/black.git
pipx install git+https://github.com/psf/black.git@branch # branch of your choice
pipx install git+https://github.com/psf/black.git@ce14fa8b497bae2b50ec48b3bd7022573a59cdb1 # git hash
pipx install https://github.com/psf/black/archive/18.9b0.zip # install a release
Синтаксис PIP с egg
должен использоваться при установке дополнительных данных:
pipx install "git+https://github.com/psf/black.git#egg=black[jupyter]"
Если приложение, установленное PIPX, требуют дополнительных пакетов, вы можете добавить их с помощью PIPX Inject. Например, если у вас установлен ipython
и вы хотите добавить в него пакет matplotlib
, вы бы использовали:
pipx inject ipython matplotlib
Вы можете вводить несколько пакетов, указав их все в командной строке или перечисляя их в текстовом файле, с одним пакетом на строку или комбинацией. Например:
pipx inject ipython matplotlib pandas
# or:
pipx inject ipython -r useful-packages.txt
Это альтернатива pipx install
.
pipx run
загрузки и запускает вышеупомянутые приложения Python «приложения» во временной среде, оставляя вашу систему нетронутой впоследствии.
Это может быть удобно, когда вам нужно запустить последнюю версию приложения, но не обязательно хотите, чтобы оно установлено на вашем компьютере.
Вы можете сделать это, когда вы инициализации нового проекта и хотите настроить правильную структуру каталогов, когда вы хотите просмотреть текст справки приложения или, если вы просто хотите запустить приложение в одноразовом случае и оставьте свою систему нетронутой впоследствии.
Например, сообщение в блоге «Как настроить идеальный проект Python», использует pipx run
, чтобы начать новый проект с CookieCutter, инструментом, который создает проекты из шаблонов проектов.
Хорошим побочным преимуществом является то, что вам не нужно помнить об обновлении приложения, так как pipx run
автоматически запускает недавнюю версию для вас.
Хорошо, давайте посмотрим, как это выглядит на практике!
pipx run APP [ARGS...]
Это установит пакет в изолированный временный каталог и вызовет приложение. Попробуйте:
> pipx run pycowsay moo
---
< moo >
---
^__^
(oo)_______
(__) )/
||----w |
|| ||
Обратите внимание, что вам не нужно выполнять какие -либо команды установки для запуска приложения .
Любые аргументы после имени заявки будут переданы непосредственно в приложение:
> pipx run pycowsay these arguments are all passed to pycowsay!
-------------------------------------------
< these arguments are all passed to pycowsay! >
-------------------------------------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
Иногда PIPX может потреблять аргументы, представленные для приложения:
> pipx run pycowsay --py
usage: pipx run [-h] [--no-cache] [--pypackages] [--spec SPEC] [--verbose] [--python PYTHON]
[--system-site-packages] [--index-url INDEX_URL] [--editable] [--pip-args PIP_ARGS]
app ...
pipx run: error: ambiguous option: --py could match --pypackages, --python
Чтобы предотвратить это двойной черт --
перед приложением. Это заставит Pipx направлять аргументы в правильное дословное приложение:
> pipx run -- pycowsay --py
----
< --py >
----
^__^
(oo)_______
(__) )/
||----w |
|| ||
Повторное разъяснение того же приложения быстро, потому что PIPX кэширует виртуальные среды на основе приложения. Кэши длится всего несколько дней, и когда они истекают, Pipx снова будет использовать последнюю версию пакета. Таким образом, вы можете быть уверены, что всегда используете новую версию пакета без необходимости обновления вручную.
Если имя приложения не соответствует имени пакета, вы можете использовать аргумент --spec
для указания имени PACKAGE
и предоставить APP
для запуска отдельно:
pipx run --spec PACKAGE APP
Например, пакет Esptool не предоставляет исполняемый файл с тем же именем:
>> pipx run esptool
'esptool' executable script not found in package 'esptool'.
Available executable scripts:
esp_rfc2217_server.py - usage: 'pipx run --spec esptool esp_rfc2217_server.py [arguments?]'
espefuse.py - usage: 'pipx run --spec esptool espefuse.py [arguments?]'
espsecure.py - usage: 'pipx run --spec esptool espsecure.py [arguments?]'
esptool.py - usage: 'pipx run --spec esptool esptool.py [arguments?]'
Вместо этого вы можете запустить исполняемые файлы, которые предоставляет этот пакет, используя --spec
:
pipx run --spec esptool esp_rfc2217_server.py
pipx run --spec esptool espefuse.py
pipx run --spec esptool espsecure.py
pipx run --spec esptool esptool.py
Обратите внимание, что расширение .py
- это не то, что вы добавляете к исполняемому имени. Это часть исполняемого имени, как это предусмотрено пакетом. Это может быть что угодно. Например, при работе с пакетом Pymodbus:
>> pipx run pymodbus[repl]
'pymodbus' executable script not found in package 'pymodbus'.
Available executable scripts:
pymodbus.console - usage: 'pipx run --spec pymodbus pymodbus.console [arguments?]'
pymodbus.server - usage: 'pipx run --spec pymodbus pymodbus.server [arguments?]'
pymodbus.simulator - usage: 'pipx run --spec pymodbus pymodbus.simulator [arguments?]'
Вы можете запустить исполняемые файлы так:
pipx run --spec pymodbus[repl] pymodbus.console
pipx run --spec pymodbus[repl] pymodbus.server
pipx run --spec pymodbus[repl] pymodbus.simulator
Приведенный выше аргумент PACKAGE
на самом деле является спецификатором требований. Следовательно, вы также можете указать конкретные версии, диапазоны версий или дополнения. Например:
pipx run mpremote==1.20.0
pipx run --spec esptool==4.6.2 esptool.py
pipx run --spec 'esptool>=4.5' esptool.py
pipx run --spec 'esptool >= 4.5' esptool.py
Обратите внимание, что некоторые спецификаторы требований должны быть заключены в кавычки или сбежать.
Вы также можете работать с репозитория GIT. Здесь black
используется в качестве примера.
pipx run --spec git+https://github.com/psf/black.git black
pipx run --spec git+https://github.com/psf/black.git@branch black # branch of your choice
pipx run --spec git+https://github.com/psf/black.git@ce14fa8b497bae2b50ec48b3bd7022573a59cdb1 black # git hash
pipx run --spec https://github.com/psf/black/archive/18.9b0.zip black # install a release
Вы можете запустить файлы .py тоже напрямую.
pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
pipx is working!
Вот и все! Это самые важные команды pipx
. Чтобы увидеть всю документацию PIPX, запустите pipx --help
или увидите документы.
PIPX был вдохновлен PIPSI и NPX. Он был создан Чадом Смитом и получил большую помощь со стороны участников. Логотип был создан @irishmorales.
PIPX поддерживается командой добровольцев (в алфавитном порядке)
Проблемы и запросы на тягу определенно приветствуются! Проверьте вклад, чтобы начать работу. Ожидается, что каждый, кто взаимодействует с проектом PIPX через кодовую базу, трекер выпуска, чаты или иным образом следить за кодом поведения PSF.