ドキュメント: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
brew update && brew upgrade pipx
を使用して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
python3 -m pip install --user --upgrade pipx
を使用してPIPXをアップグレードします。
scoop install pipx
pipx ensurepath
scoop update pipx
を使用して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
実行されていることを確認します。
py -m pip install --user --upgrade pipx
を使用してPIPXをアップグレードします。
PIPXをインストールせずに使用することもできます。 ZipappはGitHubリリースからダウンロードでき、Python 3.8+インタープリターで呼び出すことができます。
python pipx.pyz ensurepath
PIPXには事前のサポートがあります。
このコマンドで印刷された指示に従って、シェルの完了を利用できます。
pipx completions
詳細については、インストール手順を参照してください。
pipx
とは何ですか? PIPXは、Pythonで記述されたエンドユーザーアプリケーションをインストールおよび実行するのに役立つツールです。 Macosのbrew
、JavascriptのNPX、Linuxのapt
にほぼ似ています。
PIPに密接に関連しています。実際、PIPを使用していますが、コマンドラインからアプリケーションとして直接実行できるPythonパッケージのインストールと管理に焦点を当てています。
PIPは、環境分離のないライブラリとアプリの両方の汎用パッケージインストーラーです。 PIPXは、分離を追加しながらアプリをシェルで利用できるようにするため、アプリケーションのインストール用に特別に作られています。PIPXは、アプリケーションごとに孤立した環境と関連するパッケージを作成します。
PIPXはPIPで発送されませんが、それをインストールすることは、多くの場合、システムをブートストラップすることの重要な部分です。
pipx
どこからアプリをインストールしますか?デフォルトでは、PIPXはPIP、Pypiと同じパッケージインデックスを使用します。 PIPXは、ローカルディレクトリ、ホイール、git URLなど、他のすべてのソースPIP缶からインストールすることもできます。
PythonとPypiにより、開発者は「コンソールスクリプトエントリポイント」でコードを配布できます。これらのエントリポイントは、ユーザーがコマンドラインからPythonコードを呼び出すことができ、スタンドアロンアプリケーションのように効果的に機能します。
PIPXは、これらの数千のアプリケーションを含むパッケージを安全で便利で信頼できる方法でインストールして実行するためのツールです。ある意味では、Pythonパッケージインデックス(PYPI)をPythonアプリケーション用の大きなアプリストアに変えます。すべてのPythonパッケージにエントリポイントがあるわけではありませんが、多くのPythonパッケージがあります。
パッケージをPIPXと互換性のあるものにしたい場合は、コンソールスクリプトのエントリポイントを追加するだけです。詩のユーザーの場合は、これらの指示を使用してください。または、ハッチを使用している場合は、これを試してください。
pipx
あなたを可能にします
install
コマンドを使用して、分離環境にインストールされたパッケージのCLIエントリポイント(「アプリ」)を公開します。これにより、依存関係の競合やクリーンアンインストールが保証されます!run
コマンドを備えた一時環境でPythonアプリケーションの最新バージョンを実行する何よりも、PIPXは通常のユーザー許可で実行され、 sudo pip install
呼び出すことはありません(あなたはそうしていませんよね?)。
pipx
でパッケージとそのアプリケーションをインストールします実行して、グローバルにアプリケーションをインストールできます
pipx install PACKAGE
これにより、仮想環境を自動的に作成し、パッケージをインストールし、 PATH
の場所にパッケージに関連するアプリケーション(エントリポイント)を追加します。たとえば、 pipx install pycowsay
pycowsay
コマンドをグローバルに利用可能にしますが、Sandboxは独自の仮想環境でパッケージをサンドボックスします。 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
エクストラを取り付けるときは、 egg
を添えたPIP構文を使用する必要があります。
pipx install "git+https://github.com/psf/black.git#egg=black[jupyter]"
PIPXによってインストールされたアプリケーションに追加のパッケージが必要な場合は、PIPX Injectでそれらを追加できます。たとえば、 ipython
をインストールしてmatplotlib
パッケージを追加したい場合は、以下を使用します。
pipx inject ipython matplotlib
コマンドラインですべてを指定するか、1行ごとに1つのパッケージまたは組み合わせを使用して、テキストファイルにリストすることにより、複数のパッケージを挿入できます。例えば:
pipx inject ipython matplotlib pandas
# or:
pipx inject ipython -r useful-packages.txt
これは、 pipx install
に代わるものです。
pipx run
、上記のPython「アプリ」を1回限りの一時的な環境で実行し、その後システムを触れられません。
これは、最新バージョンのアプリを実行する必要がある場合に便利ですが、必ずしもコンピューターにインストールしたいとは限りません。
新しいプロジェクトを初期化していて、適切なディレクトリ構造を設定したいとき、アプリケーションのヘルプテキストを表示する場合、または1回限りのケースでアプリを実行する場合にこれを行うことができます。その後、システムを触れておきます。
たとえば、Blog Post Perfect Python Projectをセットアップする方法はpipx run
使用して、プロジェクトテンプレートからプロジェクトを作成するツールであるCookeiecutterを使用して新しいプロジェクトを開始します。
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が仮想環境をAPPごとにキャッシュするため、同じアプリを再実行するのは迅速です。キャッシュは数日しか続きません。失効すると、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はボランティアのチームによって維持されています(アルファベット順)
問題とプルリクエストは大歓迎です!貢献をチェックしてください。 CodeBaseを介してPIPXプロジェクトと対話するすべての人、トラッカー、チャットルーム、またはその他の人は、PSF行動規範に従うことが期待されています。