質問

setuptoolsを使用してpython eggを作成しましたが、実行時にメタデータにアクセスしたいと思います。私は現在これを働いています:

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

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

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

役に立ちましたか?

解決

私もPythonには多少不慣れですが、私が理解していることから:

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

他のヒント

その通り。したがって、ライブラリの現在利用可能な卵(単数)の情報のみを取得できるはずです。 site-packagesフォルダーに同じライブラリの複数のeggがある場合、同じフォルダーのeasy-install.pthをチェックして、実際に使用されているeggを確認してください:-)

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top