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

Poetry无法识别补充源:如何仅在依赖包中定义自定义源?

解决方法

方案1:直接给依赖指定完整下载URL

把custom源里的依赖,在my-package的pyproject.toml里写成带具体URL的形式,不用依赖源名称。示例:

[tool.poetry.dependencies]
python = "^3.8"
# 替换成你实际的依赖包地址,支持wheel、tar.gz、git仓库等格式
custom-dep = { url = "https://custom-source-url.com/packages/custom-dep-1.0.0-py3-none-any.whl" }

这样在my-repo里安装my-package时,Poetry会直接从这个URL拉取依赖,无需在my-repo中配置custom源。

方案2:把依赖代码嵌入my-package(适合小依赖)

如果custom源里的依赖是个小型私有包,直接把它的代码复制到my-package的目录中,比如创建vendor文件夹存放依赖代码,然后在my-package的pyproject.toml里添加配置:

[tool.poetry]
include = ["vendor/**/*"]

之后调整my-package里的导入路径,确保能正常引用这个嵌入的依赖。这种方式完全不需要额外源配置,但仅适合依赖体积小、更新频率低的场景。

方案3:临时添加源(折中,不留下冗余配置)

要是非得保留源的配置方式,可以用extras配合临时命令操作:

  • 在my-package的pyproject.toml里定义extras:
    [tool.poetry.extras]
    custom = ["custom-dep"]
    
  • 在my-repo里执行安装时,临时添加源完成安装后再移除:
    poetry source add custom https://custom-source-url.com
    poetry add my-package[custom]
    poetry source remove custom
    

这样不会在my-repo的配置文件里留下多余的源信息,但需要多执行两条命令。

补充:Poetry本身不支持将包的源配置传递给安装环境,因为源属于安装环境的项目/全局配置,并非包自带的元数据。上述方案中,方案1是最通用、无冗余的解决方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:52:46