Windows下使用 PyCharm 通过 SSH 远程连接 Linux 虚拟机的 Conda 环境,进行 Pyomo 建模与 GLPK 求解优化开发时遇到的问题

Windows下使用 PyCharm 通过 SSH 远程连接 Linux 虚拟机的 Conda 环境,进行 Pyomo 建模与 GLPK 求解优化开发时遇到的问题


记录一下自己开发中遇到的问题,回顾一下在Pycharm中进行远程开发的步骤。

环境配置

首先拿到environment.yml,在虚拟机中安装好conda虚拟环境

conda env create -n 自定义环境名 -f environment.yml

安装完了验证一下
在这里插入图片描述
首先进到设置中,增加一个SFTP开发环境,没有SSH配置就新建一个
在这里插入图片描述
在这里插入图片描述
测试是否连通
在这里插入图片描述
配置映射项目路径,项目的映射会存在虚拟机该路径下
在这里插入图片描述
配置代码自动上传同步
在这里插入图片描述
在这里插入图片描述
增加python运行环境,也可以在右下角进入,
在这里插入图片描述
选择SSH Interpreter,选择刚才创建的SSH环境,下一步
在这里插入图片描述
选择虚拟机中虚拟环境的python解释器,一般路径在 anaconda3/envs/xxx/bin/python,下方Sync folders和前面的映射文件夹保持一致
在这里插入图片描述

配置fastapi项目运行配置
在这里插入图片描述

这里有一个至关重要的参数!!!一定要在环境变量中加入,原因在最后面说,至此配置完成。

PATH=/home/zzr/miniconda3/envs/xxx/bin:$PATH
在这里插入图片描述

pyomo无法找到glpk求解器

在运行一段需要使用到glpk求解器的代码的时候始终无法执行glpk,尝试了各种方法包括指定地址等

@router.get("/solve_test")
async def test_solver():
    from pyomo.environ import SolverFactory

    solver = SolverFactory("glpk", executable="/home/zzr/miniconda3/envs/hbtrade/bin/glpsol")
    print("Solver Path:", solver.executable())
    print("Solver Available:", solver.available(exception_flag=True))

可以看到下面绝对有glpsol执行文件,执行glpsol --help也没有问题。
在这里插入图片描述
后来发现如果在虚拟机命令行中手动激活虚拟环境,再执行代码不会有任何问题,找到原因是如果远程ssh开发直接调用虚拟环境的python解释器,会无法继承系统的环境变量导致,所以上面那条环境变量至关重要!

PATH=/home/zzr/miniconda3/envs/hbtrade/bin:$PATH:

把 hbtrade 的 bin 目录放在 PATH 的最前面,这样当运行 python、pip 或 glpsol 时,系统会优先使用 hbtrade 环境下的版本,而不是系统默认的 Python 或其他工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值