You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pyproject.toml中配置自定义索引源与URL依赖?

基于pyproject.toml的依赖配置解决方案

以下是针对你提出的两种依赖安装场景的具体配置方法,完全符合pyproject.toml规范:

1. 从自定义PyPI索引源安装依赖

要实现等效于python -m pip install --pre --only-binary :all: -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy scipy的配置,需在pyproject.toml中做如下设置:

全局配置方式(推荐)

这种方式会将自定义索引、预发布允许、仅二进制包的规则应用于所有依赖:

[tool.pip.index]
# 添加自定义索引源
urls = ["https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"]
# 允许安装预发布版本(等效于--pre)
pre = true

[tool.pip.install-options]
# 仅安装二进制包(等效于--only-binary :all:)
only-binary = [":all:"]

# 声明依赖
dependencies = [
    "numpy>=1.21",
    "scipy"
]

针对特定依赖的配置

如果仅想让numpy和scipy使用自定义索引,其他依赖用默认PyPI,可以这样写:

[tool.pip.index]
pre = true

[tool.pip.install-options]
only-binary = [":all:"]

dependencies = [
    'numpy>=1.21 ; pip_extra_index_urls=["https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"]',
    'scipy ; pip_extra_index_urls=["https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"]'
]

2. 从指定URL安装WHL包

你之前的配置失败大概率是环境标记的语法问题,正确的配置如下:

基础可运行配置

确保环境标记的逻辑正确,分号后直接跟条件表达式:

dependencies = [
    'wxPython @ https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/wxPython-4.2.1-cp310-cp310-linux_x86_64.whl; python_version == "3.10" and sys_platform == "linux"'
]

安全增强:添加哈希校验

为了防止包被篡改,建议添加WHL文件的SHA256哈希值,格式为#sha256=哈希字符串:

dependencies = [
    'wxPython @ https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/wxPython-4.2.1-cp310-cp310-linux_x86_64.whl#sha256=替换为实际哈希值; python_version == "3.10" and sys_platform == "linux"'
]

你可以通过本地执行pip hash wxPython-4.2.1-cp310-cp310-linux_x86_64.whl命令获取该哈希值。

注意事项

  • 确保WHL文件的URL是公开可访问的,否则pip无法完成下载。
  • 若需更精确的环境匹配,可添加发行版相关标记,例如platform_release == "5.15"(针对Ubuntu 22.04内核)。

内容的提问来源于stack exchange,提问作者Mathieu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:57:46