3

パッケージがリポジトリからインストールされるとpip freeze、パッケージ名/バージョンではなく、そのパッケージのリポジトリ パスが生成されます。例:

-e git+https://github.com/ryneeverett/Python-Markdown.git@11f0b010395a86eac93db0816bcf984639b839e9#egg=Markdown-master

そのようなパッケージが別のアプリケーションによって必要とされた場合、それは認識されないようです。例:

$ hyde gen
Traceback (most recent call last):
  File "/home/ryne/.virtualenvs/DEV/bin/hyde", line 5, in <module>
    from pkg_resources import load_entry_point
  File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2675, in <module>
    def extras(self):
  File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 552, in resolve
    if item not in self.entry_keys:
pkg_resources.DistributionNotFound: Markdown==2.3.1

このような問題をどのように回避する必要がありますか?

4

1 に答える 1

0

これが私の古い問題を解決したかどうかは確認できませんが、(pip のソース コードを調べたところ) 問題が何であったかについてはかなり確信があります。

最新の開発バージョンと変更が必要だったので、git からインストールしていました。Hyde (めったにメンテナンスされないサードパーティのパッケージ) はマークダウン バージョンを固定しましたが、これはほぼ確実に数リリース遅れていました。問題は、フォークの setup.py で指定されたマークダウン バージョンが実際には 2.3.1 ではないことでした。

別の質問に対する私自身の答えを引用するには:

Pip は、バージョン番号 (setup.py 内) のみに基づいて、要件が満たされているかどうかを判断します。

于 2015-06-05T01:36:53.983 に答える