You need to enable JavaScript to run this app. 基于jodogne/orthanc-python镜像扩展Orthanc时提示找不到requests模块
优惠活动
大模型
产品
解决方案
定价
更多

基于jodogne/orthanc-python镜像扩展Orthanc时提示找不到requests模块

问题核心原因

Orthanc Python插件运行时使用插件内嵌的独立Python解释器,和镜像内系统自带的Python环境完全隔离。你通过系统pip单独安装的requests库,会被放置到系统Python的专属搜索路径下,插件的内嵌解释器不会读取该路径,因此始终触发ModuleNotFoundError报错。

可行解决方案(按推荐优先级排序)
  • 方案1:直接使用插件内置HTTP能力(推荐)
    Orthanc Python插件本身封装了零依赖的HTTP请求能力,完全可以覆盖自动路由场景下的接口调用需求,不需要额外引入requests依赖:
    # 替代requests.get的基础请求方法
    response = orthanc.HttpGet("目标服务接口地址")
    # 替代requests.post的基础请求方法,支持自定义请求头、传入请求体
    response = orthanc.HttpPost(
        url="目标服务接口地址",
        data="序列化后的请求体字符串",
        headers={"Content-Type": "application/json"}
    )
    
    如果需要配置自定义超时时间、证书校验规则,可以通过orthanc.CreateHttpClient()创建独立客户端实例实现,该能力为插件原生内置,和运行环境完全适配,无额外依赖问题。
  • 方案2:将依赖植入插件内嵌Python的搜索路径
    1. 查看Orthanc启动日志,定位插件内嵌Python的文件搜索路径(即sys.path列表,插件加载阶段会在日志中打印完整路径),常见路径为类似/opt/orthanc/embedded-python/lib/python3.11/site-packages的目录
    2. 下载纯Python实现版本的requests及其全部依赖(urllib3、charset-normalizer、idna、certifi)的源码包,无需包含系统编译生成的二进制文件
    3. 将上述包的源码目录直接拷贝到日志中定位到的site-packages路径下
    4. 重启Orthanc服务,内嵌Python解释器即可正常识别并导入requests库
  • 方案3:自定义预构建镜像
    如果需要长期稳定使用,可以基于官方jodogne/orthanc-python镜像编写Dockerfile,在构建阶段将所需的纯Python依赖直接写入插件内嵌的site-packages路径,构建完成的镜像启动即可直接加载依赖,无需运行后手动调整文件结构。

避坑提醒:不要直接将系统pip安装的带C扩展二进制产物的包拷贝到插件路径下,由于插件内嵌Python的编译目标和系统Python不一致,这类带编译文件的包会直接触发导入失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 19:45:03