Virtualenvとpipについて知っています。しかし、これらはバンドラー/カートンとは少し異なります。
例えば:
exec
サブコマンド(bundle exec bar
)すべてのPython開発者はvirtualenv/pipを使用しますか?Python用の他のパッケージ管理ツールはありますか?
Bundlerについて読んだことから、virtualenvを使用しないpipは問題なく機能するはずです。通常のgemコマンドとバンドラーの間の何かと考えることができます。 pipでできる一般的なこと:
パッケージのインストール(gem install)
pip install mypackage
依存関係と一括インストール(gemfile)
おそらく最も簡単な方法は、pipのrequirements.txtファイルを使用することです。基本的に、それは可能なバージョンの制約がある必須パッケージの単なるリストです。次のようになります。
nose==1.1.2
Django<1.3
PIL
後でこれらの依存関係をインストールする場合は、次のようにします。
$ pip install -r requirements.txt
要件ファイルの構文で現在のパッケージをすべて表示する簡単な方法は、次のとおりです。
$ pip freeze
詳細については、こちらをご覧ください こちら 。
実行(バンドラーexec)
すべてのpythonパッケージは通常、インストール後に直接利用できます(カスタムセットアップがある場合、または特別なパッケージである場合を除く)。例:
$ pip install gunicorn
$ gunicorn -h
キャッシュからインストールするパッケージgem(バンドラーパッケージ)
がある pip bundle
およびpip Zip/unzip
。しかし、多くの人がそれを使用するかどうかはわかりません。
p.s。環境の分離に関心がある場合は、virtualenvをpipと一緒に使用することもできます(親しい友人であり、完全に連携しています)。デフォルトでは、pipはシステム全体にパッケージをインストールしますが、管理者権限が必要になる場合があります。
pipenv を使用できます。これには、Bundlerと同様のインターフェースがあります。
$ pip install pipenv
Pipenvはvirtualenvを自動的に作成し、Pipfile
またはPipfile.lock
から依存関係をインストールします。
$ pipenv --three # Create virtualenv with Python3
$ pipenv install # Install dependencies from Pipfile
$ pipenv install requests # Install `requests` and update Pipfile
$ pipenv lock # Generate `Pipfile.lock`
$ pipenv Shell # Run Shell with virtualenv activated
bundle exec
のようなvirtualenvスコープでコマンドを実行できます。
$ pipenv run python3 -c "print('hello!')"
クローンがあります pbundler 。
現在pipにあるバージョンは、単にrequirements.txt
ファイルは既に持っていますが、かなり古くなっています。また、完全に同等ではありません:virtualenv
を作成することを主張します。 Bundlerは、不足しているパッケージのみをインストールし、システムディレクトリにインストールするSudoパスワードを指定するか、pbundlerの機能ではないように再起動するオプションを提供します。
ただし、gitのバージョンは、「Cheesefile」を含むようになり、requirements.txtをサポートしなくなるなど、Bundlerの動作により近くなるようにほぼ完全に書き直されています。残念ながら、requirements.txtはpythonlandの事実上の標準であり、 標準化 への公式のBDFLスタンプ付きの作業もあります。それが発効すると、pbundlerのようなものが事実上の標準になると確信できます。悲しいかな、私が知っている安定したものはまだありません(しかし、loveが間違っていると証明されるでしょう)。
私はそれを書きました— https://github.com/Deepwalker/pundler 。 PIPでは、pundle
という名前が既に使用されています。
requirements(_\w+)?.txt
ファイルを必要な依存関係として使用し、frozen(_\w+)?.txt
ファイルを凍結バージョンで作成します。
約 (_\w+)?
事—これはenvです。 requirements_test.txtを作成してからPUNDLEENV=test
は、requirements.txtを一緒に実行してこのデップを使用します。
また、virtualenvについては、1つでなくてもかまいません。そのパンドルは、最初のヘッドでバンドラーから取得します。
Shovel は一見の価値があります。 Python版のRake専用に開発されました。プロジェクトには大量のコミットアクティビティはありませんが、安定していて便利なようです。
いいえ、すべての開発者はvirtualenvやpipを使用しませんが、多くの開発者はこれらのツールを使用/優先します
そして今、あなたの本当の質問であるパッケージ開発ツールと異なる環境について。同じ目的でBuildout( http://www.buildout.org/en/latest/ )のような他のツールが存在する場合は、環境を分離してくださいPythonすべてのプロジェクトを管理します。しばらくの間、これを使用しますが、現在は使用していません。
プロジェクトごとの独立した環境では、PythonはRubyの同じ状況とは少し異なります。私の場合、pyenvを使用します( https://github.com/yyuu/pyenv )これはrbenvのようなものですが、Pythonの場合はpythonの異なるバージョンとプロジェクトごとのvirtualenvs、そしてこの隔離された環境では、pipまたはeasy-installを使用できます(必要な場合) )。