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

无法通过IBM CPLEX学术版将CPLEX模型部署为Streamlit云Web应用

解决方案:Streamlit云部署CPLEX学术版应用

核心问题

Streamlit云环境仅安装docplex Python包无法运行CPLEX模型,因为缺少CPLEX的核心二进制执行文件cpoptimizer。本地环境因安装了完整CPLEX学术版客户端,自带该执行文件,但云端默认未预装。

可行方案

方案1:使用IBM Decision Optimization on Cloud (DOcplexcloud)

  • 注册IBM DOcplexcloud服务(学术用户可申请免费额度)
  • 修改代码,将本地求解逻辑改为调用云端求解器:
    from docplex.cp.model import CpoModel
    from docplex.cp.config import set_defaults
    
    # 配置DOcplexcloud凭证(从IBM云控制台获取API密钥和服务URL)
    set_defaults(url="YOUR_DOCPLEXCLOUD_URL", key="YOUR_API_KEY")
    
    # 创建模型并求解(自动调用云端求解器)
    model = CpoModel()
    # ... 模型构建代码 ...
    solution = model.solve()
    
  • 优势:无需在Streamlit云环境安装CPLEX二进制文件,彻底规避环境依赖问题
  • 注意:移除代码中所有本地求解器的路径配置

方案2:自定义Streamlit云环境安装CPLEX

Streamlit云支持通过配置文件安装依赖,需手动引入CPLEX二进制文件:

  1. 获取Linux版本CPLEX二进制文件:
    从IBM官网下载对应Ubuntu版本的CPLEX学术版安装包,提取cplex/bin/x86-64_linux/路径下的cpoptimizer文件
  2. 将二进制文件纳入项目并配置路径:
    • 将cpoptimizer放到项目目录的bin/文件夹下
    • 在代码中指定求解器路径:
      from docplex.cp.config import set_defaults
      
      # 设置求解器路径指向项目中的cpoptimizer文件
      set_defaults(executable="./bin/cpoptimizer")
      
  3. 配置requirements.txt:
    添加docplex依赖:
    docplex>=2.25.239
    
  • 注意:本地需执行chmod +x bin/cpoptimizer赋予文件可执行权限,上传到代码仓库后需保留该权限

方案3:Docker镜像部署(替代Streamlit云)

  • 构建包含CPLEX学术版和Streamlit的Docker镜像:
    # 基础镜像
    FROM python:3.9-slim
    
    # 安装CPLEX学术版(假设安装包已放入Docker构建上下文)
    COPY cplex_studio1210.linux-x86-64.bin /tmp/
    RUN chmod +x /tmp/cplex_studio1210.linux-x86-64.bin && \
        /tmp/cplex_studio1210.linux-x86-64.bin -i silent -DLICENSE_ACCEPTED=TRUE
    
    # 设置CPLEX环境变量
    ENV PATH="/opt/ibm/ILOG/CPLEX_Studio1210/cpoptimizer/bin/x86-64_linux:${PATH}"
    
    # 安装依赖
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    
    # 复制项目代码
    COPY . /app
    WORKDIR /app
    
    # 启动应用
    CMD ["streamlit", "run", "app.py"]
    
  • 将镜像部署到支持Docker的云平台(如AWS ECS、Google Cloud Run)
  • 优势:完全控制环境,适配CPLEX所有功能

注意事项

  • 学术版CPLEX的使用需严格遵守IBM学术许可协议,确保云端部署用途符合许可要求
  • 若使用DOcplexcloud,需留意免费额度限制,避免超出配额导致服务中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:25:39