在Eclipse/MyEclipse下執行python指令碼
阿新 • • 發佈:2019-01-11
這個問題折騰了我幾個小時才弄明白怎麼回事。。。
現在來簡單解釋一下
首先你需要一個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\;
配置完畢之後點選確認再次執行即可正常出結果。