• windows环境

windows环境下调用python虚拟环境conda报错: importerror: dll load failed while importing _gdal: 找不到指定的模块。

解决:

  1. 编写activate.cmd
:: windows切换环境
activate gdal3.3.1
  1. java调用脚本
// 先切换环境再执行脚本
String cmd = "D:\\ars\\m2m\\activate.cmd && " ;   // 切换环境
		  += " python D:\\ars\\m2m\\tvdi.py" ; 	  // 执行脚本
		  += " --LC08_fn --shape_fn" ;			  // 传递参数
logger.info("-------------------> " + cmd + " <-------------------");

// 执行
Process p = Runtime.getRuntime().exec(cmd);

String read, result = "";
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream(), "gbk"));
while ((read = in .readLine()) != null) {
    result += read;
}

p.waitFor();
// 返回结果
logger.info("-------------------> " + result + " <-------------------");
  • linux环境
# 查找
whereis conda
# 查找
which python
> /root/miniconda3/envs/mmenv/bin/python
  • 全路径执行
@Test
void testDk() throws IOException, InterruptedException {
    String cmd = "/root/miniconda3/envs/mmenv/bin/python ~/0predict1.py";
    Process p = Runtime.getRuntime().exec(cmd);
    String read, result = "";
    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream(), "gbk"));
    while ((read = in.readLine()) != null) {
        result += read;
    }
    p.waitFor();
    logger.info("-------------------> result: " + result + " <-------------------");
}
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐