健全なアイデアをrubyコミュニティと共有するという古き良き伝統に従って、私はBundler(http://bundler.io/)のアイデアを移植することを決定し、Pundleと名付けました。 これは、ルーブルのインタープリターとパッケージのバージョンに関連するワークフローの2番目の部分であり、最初の部分と同様に非常に合理的です。
pundleの主なアイデアは、virtualenvのようにパッケージバージョンの組み合わせごとに個別のディレクトリを作成するのではなく、すべてのパッケージを.pundlerdir / python-version-variant / package-name-2.3.4などのディレクトリに配置し、プロジェクトが開始するときです、frozen.txtから情報を取得し、必要なパッケージバージョンをアクティブにします
これは、.pthファイルをサイトパッケージに展開するあらゆる種類のトリックを実行しようとするパッケージではうまく機能しませんが、通常のオプションでは正常に機能します。 そして、彼らの圧倒的多数は、まあ、aboutなものについては、それらに対処する方法を理解する時間があります。
だから、いじってみましょう:
> pyenvを作成する > pyenv install 3.4.1 > pyenvシェル3.4.1 > python --version Python 3.4.1
素晴らしい、通訳の正しいバージョン! あなたはすでに言語の遅い死に向かう傾向を逆転させるために、第三のバージョンに切り替え始めましたか? 次に、さらに進んで、より斬新な方法で呼吸し、コンテンツを含むrequirements.txtファイルを作成します。
trafaret> 0.5 遊牧民> 1.8
さて、今パンドルを実行します:
> pipインストールパンドル ... > python -m pundle いくつかのパッケージをインストールする ...多くのブナ、キャラクター、間投詞、瞑想
この時点で、パッケージを配信し、frozen.txtファイルを受け取りました。
nomad == 1.9#nomad <<要件ファイル opster == 4.1#opster> = 4.0 << nomad <<要件ファイル termcolor == 1.1.0#termcolor << nomad <<要件ファイル trafaret == 0.5.3#trafaret <<要件ファイル
必要な2つのパッケージと、nomad依存関係としての負荷がいくつかあります(これも良いことですが、Sashaはそれについてよりよく燃やしています)。
さらに、2つのオプションがあります。1つ目はファイルにあり、これを使用してプロジェクトを起動して、パンドルをインポートし、必要なバージョンのプロジェクトをアクティブにするように依頼します。
fixateコマンドを使用して、必要なパッケージバージョンのアクティベーションをusercustomize.pyに追加します。
> python -m pundle fixate
これから、インタプリタを起動して、必要なパッケージバージョンに自動的にアクセスできます。
> python >>>ノマドをインポート >>> nomad .__ version__ 「1.9」
ここでpyenv github.com/yyuu/pyenv
ここでパンドルgithub.com/Deepwalker/pundler
開発者のマシンで使用する必要があり、デプロイするときではありません。 サーバー上では、5つのpythonと7つのdjangoでは意味がありません。
私は両方のプロジェクトを実際の作業で使用することを楽しんでおり、virtualenvとインタープリターのバージョンを気にしないのが大好きです。 しかし、私はパンドルだけを使用するのには少し退屈しているので、PRを取り上げて、現代のpythonerのワークフローを新しい高度なワークフローに変更するよう全員に招待します。