Github: https://github.com/pantsbuild/pex
PEX
pexはvirtualenvの精神で実行可能なPython環境である.pex(Python EXecutable)ファイルを生成するためのライブラリです。 pexは、 PEP 441で概説されたアイデアを拡張したもので、Pythonアプリケーションをcp
同じくらい簡単に配備しcp
。 pexファイルには、複数のプラットフォーム固有のPythonディストリビューションが含まれていても、1つのpexファイルをLinuxとOS Xで移植することができます。
pexファイルは、 pex
ツールを使用して構築できます。 Pants 、 Buck 、 {py} gradleなどのビルドシステムでは、.pexファイルを直接作成することもできます。
pexの動作や動作についてはまだ分かりません。 この素早い稲妻の話を見てください: WTFはPEXですか? 。
pexはApache2ライセンスの下でライセンスされています。
インストール
pexをインストールするには、単純に
$ pip install pex
toxを使ってgitクローンでpexを構築することもできます:
$ tox -e py27-package
$ cp dist/pex ~/bin
dist/pex
$PATH
コピーできるpexバイナリが構築されます。 このアプローチの利点は、Python環境を可能な限り空に保ち、哲学的にはPEXの機能と一線を画している点です。
簡単な例
requests
、 flask
、 psutil
ある環境でインタープリタを起動する:
$ pex requests flask 'psutil>2,<3'
あるいは、現在のvirtualenvをrequirements.txtでフリーズしてどこでも実行できます:
$ pex -r <(pip freeze) -o my_virtualenv.pex
$ deactivate
$ ./my_virtualenv.pex
実験のすばやい方法として、 flask
を含む環境でwebserver.pyを実行します。
$ pex flask -- webserver.py
一時的なpex環境でSphinxエントリーポイントを使ってSphinxを起動するsphinx:main
:
$ pex sphinx -e sphinx:main -- --help
pex
console_scriptsエントリポイントを使用して、スタンドアロンのpexバイナリをpex.pex
ビルドします。
$ pex pex -c pex -o pex.pex
特定のインタプリタタイプを使用するpexファイルを構築することもできます:
$ pex pex -c pex --python=pypy -o pypy-pex.pex
ほとんどのpexオプションは互いによく構成されているので、上記のコマンドは混在してマッチすることができます。 オプションの完全なリストについては、 pex --help
。
あなたのワークフローにpexを統合する
もしあなたがtoxを使用しているなら、あなたのワークフローにpexを統合する簡単な方法は、あなたのtox.ini
パッケージングテスト環境を追加することtox.ini
:
[testenv:package]
deps = pex
commands = pex . -o dist/app.pex
次に、 tox -e package
は、アプリケーションの再配置可能なコピーを生成し、ステージング環境または本番環境にコピーできます。
ドキュメンテーション
pex、.pexファイルの構築、および.pexファイルの動作の詳細については、 https: //pex.readthedocs.ioを参照してください 。
開発
pexはテストと開発の自動化のためにtoxを使います。 テストスイートを実行するには、単にtoxを呼び出します。
$ tox
あなたが毒素を持っていない場合は、毒素の腹部を生成することができます:
$ pex tox -c tox -o ~/bin/tox
貢献する
貢献するには、以下の手順に従ってください: http : //pantsbuild.org/howto_contribute.html