首页 文章

从JAVA调用Python脚本MySQLdb导入

提问于
浏览
2

我从我的Java代码调用Python脚本 . 这是代码:

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

public class JavaRunCommand {
    public static void main(String args[]) throws IOException {

        // set up the command and parameter
        String pythonScriptPath = "my-path";
        String[] cmd = new String[2];
        cmd[0] = "python2.6";
        cmd[1] = pythonScriptPath;

        // create runtime to execute external command
        Runtime rt = Runtime.getRuntime();
            Process pr = rt.exec(cmd);

        // retrieve output from python script
        BufferedReader bfr = new BufferedReader(new InputStreamReader(
                pr.getInputStream()));
        String line = "";
        while ((line = bfr.readLine()) != null) {
            // display each output line form python script
            System.out.println(line);
        }
    }

}

python.py 哪个有效

import os
from stat import *

c = 5
print c

python.py 哪个不起作用

import MySQLdb
import os
from stat import *

c = 5
print c 
# some database code down

所以,我处于一个关键阶段,我有一个我的创业公司的截止日期,我必须向客户端展示我的MVP项目,我正在考虑像这样调用Python脚本 . 当我打印没有dB连接和MySQLdb库的任何东西时,它工作 . 但是当我包含它们时,它不会运行python脚本 . 这里错了 . 它不是假设运行处理所有输入的过程 . 我安装了MySQLdb,脚本在没有java代码的情况下运行 .

我知道这不是解决问题的最佳方法 . 但为了向客户展示一些东西,我需要这件事 . 有什么建议 ?

1 回答

  • 0

    所以,我发现问题在于我用Java传递的参数来运行python程序 .

    第一个参数是 - python 2.6,但它应该只是python而不是某些版本号,因为MySQLdB和python存在兼容性问题 .

    我最终决定在python代码中使用MySQL Python连接器而不是MySQLdB . 它像魅力一样工作,问题解决了!

相关问题