全天:
- 学习pytorch
- 解决Java调用python的问题
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package transport;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class NewClass2 {
public void java2python() throws Exception{
// python解析器的路径
String s1 = "C:\\Anaconda3\\envs\\torch\\python.exe";
// 要执行的python脚本
String s2 = "C:\\Users\\Space\\Desktop\\yolov4-tiny-pytorch-master\\predict.py";
// 传入python脚本的参数
// String s3 = "C:\\Users\\Space\\Desktop\\yolov4-tiny-pytorch-master\\img\\Chongyangwoodspotmoth7.jpg";
String s3 = "C:\\Users\\Space\\Desktop\\yolov4-tiny-pytorch-master\\img\\Chongyangwoodspotmoth7.jpg";
// String s4 = 4+"";
String[] arguments = new String[] {s1, s2, s3};
Process process = Runtime.getRuntime().exec(arguments);
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
String result = "";
// python里的运行结果,想传给java,就需要用这种readline的形式了。
while ((line = in.readLine()) != null) {
result += line;
System.out.println(line);
}
in.close();
// System.out.println(result);
}
public static void main(String[] args) throws Exception {
NewClass2 t = new NewClass2();
t.java2python();
}
}
问题:对于这个java调用python的Java文件,他只能调用python本类的方法,如果在python本类中调用别的类的方法,那么是行不通的
- 各种尝试,例如:from 绝对路径import,不行
- 更改解释器,不行
- 放入库包里,不行
自我控制:
情商在线
总结:
累挺、而且感觉挫败