【问题标题】:How to make source-controlled pip packages fulfill other packages' requirements如何使源代码控制的 pip 包满足其他包的要求
【发布时间】:2013-10-31 19:50:17
【问题描述】:

从存储库安装软件包时,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

应如何避免此类问题?

【问题讨论】:

    标签: python version-control pip pkg-resources


    【解决方案1】:

    我无法确认这是否能解决我的老问题,但是(通过查看 pip 的源代码)我很确定问题是什么:

    我从 git 安装,因为我想要最新的开发版本以及我的修改。 Hyde(一个很少维护的第三方包)固定了降价版本,几乎可以肯定它落后了几个版本。所以问题是我fork的setup.py中指定的markdown版本实际上不是2.3.1。

    引用我自己对another question的回答:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      相关资源
      最近更新 更多