如何从 PyPI 获取最新的 sdist link
How to get latest sdist link from PyPI
我想在 conda 构建配方中为 meta.yaml 获取 sdist url。它需要从 URL 获取特定版本或最新版本。正如我对 CI/CD 使用 Github 操作一样,我需要自动检索特定版本或最新版本的源 link。
现在 link 是这样的:https://files.pythonhosted.org/packages/40/e7/sha-256-of-file/file I need something reliable like https://hosting/package/release/file
我需要知道一种更可靠的方法来检索最新的 sdist 或特定版本的 sdist。有什么办法可以做到这一点,或者我需要走另一条路?
到目前为止,这个问题对我没有用,因为我不打算在 python 中安装它。我需要将其包含在 conda-build 的 meta.yaml 配方中。
meta.yaml 看起来像这样:
{% set version = "0.1.1rc3" %}
package:
name: blablablah
version: {{ version }}
source:
url:
sha256: f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5
build:
noarch: python
number: 0
script: python -m pip install --no-deps --ignore-installed .
requirements:
host:
- python
- pip
- numpy==1.16.5
- cython
run:
- python
test:
imports:
- blablablah
about:
here are information about the package
我不知道从哪里获取此文件,因为代码更新 hourly 并且无法手动升级。
如果知道确切的项目名称和版本,可以使用下面的URL结构:
project_name = "..."
version = "..."
url = f"https://files.pythonhosted.org/packages/source/{project_name[0]}/{project_name}/{project_name}-{version}.tar.gz
例如
https://files.pythonhosted.org/packages/source/p/pip/pip-20.0.1.tar.gz
如果不知道最新版本,可以使用PyPI JSON API获取:
>>> import requests
>>> resp = requests.get('https://pypi.org/pypi/pip/json').json()
>>> resp['info']['version']
'20.0.1'
注意:不能保证给定版本的源分发存在,尽管它很可能存在。
我想在 conda 构建配方中为 meta.yaml 获取 sdist url。它需要从 URL 获取特定版本或最新版本。正如我对 CI/CD 使用 Github 操作一样,我需要自动检索特定版本或最新版本的源 link。
现在 link 是这样的:https://files.pythonhosted.org/packages/40/e7/sha-256-of-file/file I need something reliable like https://hosting/package/release/file
我需要知道一种更可靠的方法来检索最新的 sdist 或特定版本的 sdist。有什么办法可以做到这一点,或者我需要走另一条路?
到目前为止,这个问题对我没有用,因为我不打算在 python 中安装它。我需要将其包含在 conda-build 的 meta.yaml 配方中。
meta.yaml 看起来像这样:
{% set version = "0.1.1rc3" %}
package:
name: blablablah
version: {{ version }}
source:
url:
sha256: f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5
build:
noarch: python
number: 0
script: python -m pip install --no-deps --ignore-installed .
requirements:
host:
- python
- pip
- numpy==1.16.5
- cython
run:
- python
test:
imports:
- blablablah
about:
here are information about the package
我不知道从哪里获取此文件,因为代码更新 hourly 并且无法手动升级。
如果知道确切的项目名称和版本,可以使用下面的URL结构:
project_name = "..."
version = "..."
url = f"https://files.pythonhosted.org/packages/source/{project_name[0]}/{project_name}/{project_name}-{version}.tar.gz
例如
https://files.pythonhosted.org/packages/source/p/pip/pip-20.0.1.tar.gz
如果不知道最新版本,可以使用PyPI JSON API获取:
>>> import requests
>>> resp = requests.get('https://pypi.org/pypi/pip/json').json()
>>> resp['info']['version']
'20.0.1'
注意:不能保证给定版本的源分发存在,尽管它很可能存在。