【问题标题】:What is the difference between pip installing a git repo with and without #egg=pip 安装 git repo 有和没有 #egg= 有什么区别?
【发布时间】:2017-03-17 19:30:23
【问题描述】:

以下两个命令都成功安装了我的包而没有错误。

pip install git+https://path_to_repo/repo_name.git@v17.8.0

pip install git+https://path_to_repo/repo_name.git@v17.8.0#egg=repo_name

有什么区别?

我正在使用 pip 7.1.0 和 9.0.1

【问题讨论】:

  • @abccd:我们最近发现它实际上改变了 pip 的行为。当#egg=name以该形式使用或未使用但标签更改时,第二次运行时不会更新代码(版本不会升级为新代码)。我们发现您必须使用#egg=name==0.1.2,这将“检测”代码更改并升级包。

标签: python git pip


【解决方案1】:

确定名称和版本

对于每个候选项目,pip 需要知道项目名称和 版本。对于车轮(由 .whl 文件扩展名标识),这可以 根据 Wheel 规范,从文件名中获取。对于本地 目录,或明确指定的 sdist 文件,setup.py egg_info 命令用于确定项目元数据。对于 sdist 通过索引定位,文件名被解析为名称和项目 版本(这在理论上比使用 egg_info 命令,但避免下载和处理不必要的 文件数)。

任何 URL 都可以使用 #egg=name 语法来明确声明项目名称。

【讨论】:

  • 不要使用代码块作为引号。除其他问题外,它使屏幕阅读器逐个字符地读出引号而不是单词。
猜你喜欢
  • 2012-08-03
  • 2023-04-05
  • 2014-01-26
  • 1970-01-01
  • 2014-02-10
  • 2018-07-05
  • 2019-11-30
  • 2013-11-06
  • 2023-02-09
相关资源
最近更新 更多