在Eclipse/MyEclipse下运行python脚本

这个问题折腾了我几个小时才弄明白怎么回事。。。

现在来简单解释一下

首先你需要一个java开发环境 这里使用eclipse

输入以下代码(*.py 路径按需求更改)

package t;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Test {

	public static void main(String[] args) throws IOException, InterruptedException {
		// TODO 自动生成的方法存根
		//Process proc = Runtime.getRuntime().exec("python  F:\\pythonLabCodes\\lab3\\lab3_2.py");    
		  try {
	           System.out.println("start");
	           String args1="python"+" "+"F:\\pythonLabCodes\\lab3\\lab3_2.py";
	           
	           Process pr=Runtime.getRuntime().exec(args1);
	            
	           BufferedReader in = new BufferedReader(new InputStreamReader(
	             pr.getInputStream()));
	           String line;
	           while ((line = in.readLine()) != null) {
	            System.out.println(line);
	           }
	           in.close();
	           pr.waitFor();
	           System.out.println("end");
	          } catch (Exception e) {
	           e.printStackTrace();
	          }
	}

}
//上述引用某大佬的代码
#-*- coding: utf-8 -*-
#数据规范化
import pandas as pd
import numpy as np

datafile = r'F:\pythonLabCodes\lab3\chapter4\demo\data\normalization_data.xls' #参数初始化
data = pd.read_excel(datafile, header = None) #读取数据

data1=(data - data.min())/(data.max() - data.min()) #最小-最大规范化
data2=(data - data.mean())/data.std() #零-均值规范化
data3=data/10**np.ceil(np.log10(data.abs().max())) #小数定标规范化

print(data1)
print(data2)
print(data3)
print(sys.path)

//上述为lab3_2.py代码

xml就不展示了

输出结果:

一开始在cmd下运行总是找不到no module named pandas

所以在java下也输出不了结果

找了很多文章也弄不太明白,后来才发现问题

关键点在于配置PYTHONPATH变量

注意这里需要的是模块(module)的安装路径的上一层

例如F:\projects\pycharm\venv\Lib\site-packages\;

配置完毕之后点击确认再次运行即可正常出结果。

猜你喜欢

转载自blog.csdn.net/w6790400/article/details/80601465