我为我的雇主创建了一个私人套餐。由于我被禁止将其上传到 PyPI(它是专有的),因此我将其上传到我们私人 Gitlab 中心上的项目的包索引中。我可以手动安装它:
$ pip install my-package --extra-index-url https://__token__:my-token-xx[email protected] /cdn-cgi/l/email-protection/api/v4/projects/123456/packages/pypi/simple
现在我也想要设置工具 https://pypi.org/project/setuptools/当在 setup() 的 install_requires 参数中列出时能够找到它。我试过:
setup(
install_requires=[
f"my-package @ https://__token__:{API_TOKEN}@gitlab.company-domain.com/api/v4/projects/123456/packages/pypi/simple",
...
],
...
pip install -e .
结果是
ERROR: HTTP error 404 while getting https://__token__:****@gitlab.company-domain.com/api/v4/projects/123456/packages/pypi/simple
这不同于
my-package @ git+https://user:[email protected] /cdn-cgi/l/email-protection/..../my-package.git
这可行,但我希望能够将其作为预构建的轮子下载。
我不确定这是 setuptools 问题还是 Gitlab 问题。 404 响应告诉我,这可能是 gitlab 问题,但与 pip install CLI 命令一起使用时,相同的 URI 可以完美运行。
这个问题类似于将 gitlab 包注册表中的 python 包和其他外部索引直接包含到 setup.py 依赖项中 https://stackoverflow.com/q/65581442/270511,但我认为没有得到足够的回应。我发布了同样的问题讨论.python.org https://discuss.python.org/t/dependency-notation-including-the-index-url/5659/63?u=lsiden,但这个讨论已经很老了,我想我可能会在这里得到更快的回复。
我还发现这个回应 https://stackoverflow.com/a/68900614/270511类似的问题,这并不令人鼓舞。推荐Poetry或者Pipenv。我已经尝试了这两种方法,发现在解决依赖关系时,每种方法都非常慢,所以我又求助于 setuptools。