1. 程式人生 > >在Eclipse/MyEclipse下執行python指令碼

在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\;

配置完畢之後點選確認再次執行即可正常出結果。