【问题标题】:Calling Python script from JAVA MySQLdb imports从 JAVA MySQLdb 导入调用 Python 脚本
【发布时间】:2013-02-22 05:14:23
【问题描述】:

我正在从我的 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 代码的情况下运行。

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

【问题讨论】:

  • 你有什么错误吗?如果您不打印数据库连接,您的 java 程序的输出是什么?
  • 您的 python 脚本是否从 java 之外的命令 shell 运行?可能是命令 shell 中的 Python 找不到该库。看看这个 q:stackoverflow.com/questions/135035/python-library-path 并从 java 和独立打印 sys.path

标签: java python jakarta-ee


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 2018-02-20
    • 2017-07-27
    • 2012-07-11
    • 2012-02-03
    • 2010-10-11
    相关资源
    最近更新 更多