从 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 打印 cpython.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 中崩溃