5

私は Python エコシステムに慣れていないので、モジュールの編集について質問があります。

私は、PyPi で配布されている一連のサードパーティ モジュールを使用しています。C と Java のバックグラウンドを持つ私は、easy_install <whatever>. これは新しく素晴らしい世界ですが、新しくインストールしたモジュールを編集しようとすると、次の 2 つの理由でモデルが壊れてしまいます。

  1. eggファイルは、ファイル システムのクレイジーな場所にあるフォルダまたはアーカイブに格納されている可能性があります。
  2. を使用するeggと、元のプロジェクトのバージョン管理システムを使用できなくなるようです。debian パッケージを使用すると元の VCS リポジトリからの開発ができなくなるのと同じです。

任意の VCS リポジトリからモジュールをインストールするためのベスト プラクティスは何ですか? import foomodule他のスクリプトで続行できるようにしたいです。また、モジュールのソース コードを変更した場合、追加のコマンドを実行する必要がありますか?

4

4 に答える 4

3

Pipを使用すると、Subversion、git、Mercurial、または bzr リポジトリへの URL を提供するファイルをインストールできます。

pip install -e svn+http://path_to_some_svn/repo#egg=package_name

例: pip install -e hg+ https://rwilcox@bitbucket.org/ianb/cmdutils#egg=cmdutils

cmdutilsの最新バージョンをダウンロードしたい場合。(私が引くことにしたランダムなパッケージ)。

これを (-E パラメーターを使用して) virtualenv にインストールし、インストールされた cmdutls を virtualenv フォルダーの最上位にある src フォルダーに pip しました。

pip install -E thisIsATest -e hg+https://rwilcox@bitbucket.org/ianb/cmdutils#egg=cmdutils

$  ls thisIsATest/src
cmdutils
于 2010-06-07T00:18:39.127 に答える
2

開発を行いたいが、開発されたバージョンをシステムによって卵として処理する必要がありますか (たとえば、エントリ ポイントを取得するため)? その場合は、ソースをチェックアウトし、次のようにして開発モードを使用する必要があります。

python setup.py develop

プロジェクトがたまたま上記に必要な setuptools ベースのプロジェクトでない場合、次のコマンドで簡単に回避できます。

python -c "import setuptools; execfile('setup.py')" develop

setuptools (easy_install の基礎) について知りたいと思ったことはほとんどすべてsetuptools docsから入手できます。easy_install のドキュメントもあります。

開発モードでは、easy_install と同じ方法でプロジェクトがインポート パスに追加されます。行った変更は、次にモジュールをインポートするときにアプリで使用できるようになります。

他の人が述べたように、編集する機能を持たない最新バージョンをそのまま取得したい場合は、バージョン管理 URL を直接使用することもできますが、それはスナップショットのみを取得し、実際にはプロセスの一部として通常の卵を作成します。 . 私は確かにそれが Subversion を行うことを知っており、他のものも行ったと思いましたが、それに関するドキュメントを見つけることができません。

于 2010-06-07T00:34:33.243 に答える
1

PYTHONPATH環境変数を使用するか、サイト パッケージ内のどこかにコードをシンボリック リンクすることができます。

于 2010-06-06T23:37:24.200 に答える
1

easy_install によってインストールされるパッケージは、開発者のバージョン管理のスナップショットから取得される傾向があり、通常、開発者が公式バージョンをリリースするときに作成されます。したがって、easy_install による便利な自動ダウンロードと、バージョン管理による最新のコード更新のどちらかを選択する必要があります。後者を選択すると、python パッケージ インデックスに表示されるほとんどのパッケージを、バージョン管理チェックアウトから直接ビルドしてインストールできますpython setup.py install

デフォルトのインストール ディレクトリが気に入らない場合は、代わりにカスタムの場所にインストールし、インストールされたPYTHONPATHパッケージの親フォルダーのパスを値とする環境変数をエクスポートできます。

于 2010-06-07T00:04:51.563 に答える