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(一个很少维护的第三方包)固定了降价版本,几乎可以肯定它落后了几个版本。所以问题是我的fork的setup.py中指定的markdown版本实际上不是2.3.1。

引用我自己对另一个问题的回答:

Pip 仅根据版本号(在 setup.py 中)决定是否满足要求。

于 2015-06-05T01:36:53.983 回答