6

setuptools を使用して Python の卵を作成しましたが、実行時にそのメタデータにアクセスしたいと考えています。私は現在これに取り組んでいます:

import pkg_resources
dist = pkg_resources.get_distribution("my_project")
print(dist.version)

しかし、同じ卵の複数のバージョンがインストールされている場合、これはおそらく正しく機能しません。そして、卵と開発バージョンの両方をインストールした場合、このコードを開発バージョンから実行すると、インストールされた卵のバージョンが取得されます。

では、システムにインストールされたランダムに一致する卵ではなく卵のメタデータを取得するにはどうすればよいですか?

4

2 に答える 2

4

私もPythonには少し慣れていませんが、私が理解していることから:

「同じ」egg (同じ名前を持つ) の複数のバージョンをインストールできますが、実行時に (検出方法に基づいて) 特定のコードで使用できるのはそのうちの 1 つだけです。したがって、あなたの卵がこのコードを呼び出している場合、それはこのコードのバージョンとして既に選択されている必要がmy_projectあり、アクセスはあなた自身のバージョンになります。

于 2008-10-07T10:56:40.420 に答える
0

丁度。そのため、現在利用可能なライブラリの卵 (単数形) の情報しか取得できないはずです。サイトパッケージフォルダーに同じライブラリの複数の卵がある場合は、同じフォルダーの easy-install.pth をチェックして、どの卵が実際に使用されているかを確認してください:-)

サイト ノート: これはまさに zc.buildout のようなシステムのポイントであり、たとえばアプリケーションの開発中や Web アプリケーションの提供中に利用できるライブラリの正確なバージョンを定義できます。したがって、たとえば、あるプロジェクトにはバージョン 1.0 を使用し、別のプロジェクトには 1.2 を使用できます。

于 2008-10-07T11:06:09.917 に答える