从 JAVA MySQLdb 导入调用 Python 脚本

Posted

技术标签:

【中文标题】从 JAVA MySQLdb 导入调用 Python 脚本【英文标题】:Calling Python script from JAVA MySQLdb imports 【发布时间】: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:***.com/questions/135035/python-library-path 并从 java 和独立打印 sys.path 【参考方案1】:

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

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

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

【讨论】:

以上是关于从 JAVA MySQLdb 导入调用 Python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

MySQLdb 导入从命令行工作,但在 PyCharm 中崩溃

在 Python 中,我可以调用导入模块的 main() 吗?

Pentaho 数据集成 从数据库导入大型数据集

Python MySQLdb没有导入

安装MYSQLdb没有错误,但我无法导入

Python下操作Mysql数据库