3

我正在从我的 Java 代码中调用 Python 脚本。这是代码:

导入 java.io.BufferedReader;
导入 java.io.IOException;
导入 java.io.InputStreamReader;

公共类 JavaRunCommand {
    公共静态 void main(String args[]) 抛出 IOException {

        // 设置命令和参数
        字符串 pythonScriptPath = "我的路径";
        字符串[] cmd = 新字符串[2];
        cmd[0] = "python2.6";
        cmd[1] = pythonScriptPath;

        // 创建运行时执行外部命令
        运行时 rt = Runtime.getRuntime();
            进程 pr = rt.exec(cmd);

        // 从 python 脚本中检索输出
        BufferedReader bfr = new BufferedReader(new InputStreamReader(
                pr.getInputStream()));
        字符串行 = "";
        while ((line = bfr.readLine()) != null) {
            //以python脚本的形式显示每个输出行
            System.out.println(line);
        }
    }

}

python.py有效

导入操作系统
从统计导入 *

c = 5
打印 c

python.py不起作用

导入 MySQL 数据库
导入操作系统
从统计导入 *

c = 5
打印 c
# 一些数据库代码下来

所以,我正处于一个关键阶段,我的创业有最后期限,我必须向客户展示我的 MVP 项目,我正在考虑像这样调用 Python 脚本。当我在没有 dB 连接和 MySQLdb 库的情况下打印任何内容时,它可以工作。但是当我包含它们时,它不会运行 python 脚本。这里有什么问题。不是假设运行处理所有输入的过程。我安装了 MySQLdb,并且脚本在没有 java 代码的情况下运行。

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

4

1 回答 1

0

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

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

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

于 2013-03-10T03:52:27.727 回答