如何确定Python包在Github上的名称?

25

我知道我可以使用来安装

$ pip install -e git+https://git.repo/some_pkg#egg=SomePackage

但是当我尝试使用别人的软件包时,我该如何确定这个蛋的名称?

1个回答

46

查看git存储库,在根目录下找到setup.pysetup.cfgpyproject.toml文件,并查找设置了什么名称。

  • setup.py中,查找setup()函数调用中的name关键字。
  • setup.cfg中,在[metadata]部分下查找name条目。
  • 如果只有一个pyproject.toml文件,则查找[tool.poetry][tool.flit.metadata][project]部分,并在该部分下找到name条目。(具体取决于使用的打包工具;flintpoetry需要不同的部分,可能还有其他项目使用pyproject.toml创建Python包)。

例如,Pyramid项目有一个setup.py文件,其中包含:setup.py文件,其中包含:

setup(
  name='pyramid',

那么您将使用:

$ pip install -e git+https://github.com/Pylons/pyramid.git#egg=pyramid

或者,如果你查看FastAPI存储库,那么你将找到一个包含以下内容的pyproject.toml文件

[tool.flit.metadata]
module = "fastapi"

那么你会使用

$ pip install -e git+https://github.com/tiangolo/fastapi.git#egg=fastapi

1
你能解释一下什么是 egg 以及为什么需要它吗?我尝试搜索了一下,但没有找到任何解释。 - Sanghyun Lee
2
@SanghyunLee:Python egg格式是一种分发格式和标准,用于跟踪安装了什么。#egg=<name> 部分告诉 pip 项目安装的名称,以便它确定是否已经存在现有的安装等。 - Martijn Pieters
哦,我以为这是pipenv特有的问题,因为我是通过https://dev59.com/CVUK5IYBdhLWcg3w2i7o找到这个帖子的,所以我无法搜索它的含义。非常感谢! - Sanghyun Lee
名称也可以放在setup.py之外,例如在setup.cfg中。 - Goku
@Goku:我的回答最初是在setup.cfg文件出现之前编写的。我已经更新了答案,涵盖了这些内容,以及pyproject.toml文件。感谢您指出我的答案不再像它本来可以那样完整! - Martijn Pieters
@MartijnPieters 没问题-谢谢您更新答案!我刚刚注意到这是一个旧问题。 - Goku

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接