我正在从我的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代码的情况下运行。
我知道这不是解决问题的最好办法。但为了给客户看点东西我需要这玩意。有什么建议吗?
所以,我发现问题出在我在Java运行python程序时传递的论点上。
第一个参数是-python2.6,但它应该只是python,而不是某个版本号,因为MySQLdB和python存在兼容性问题。
我最终决定在Python代码中使用MySQL Python连接器而不是MySQLdB。它像魅力一样工作,问题得到了解决!
我试图从java代码调用python脚本。
我有以下目录结构: b、 py需要在a.py中导入一个类。因此,我可以在导入a之前将以下行添加到b.py。 sys.path.append(os.path.dirname(sys.argv[0])) 这是可行的,我可以从任何目录调用b.py,它也可以导入a。但是,当我在另一个目录中编写脚本以使用execfile()调用此文件时,这将失败。 我尝试了相对导入,但得到了“在非包错误中尝试相对导入” 我
问题内容: 我正在尝试从python这样启动PowerShell脚本: 问题是我得到以下错误: 无法加载文件C:\ Users \ sztomi \ workspace \ myproject \ buildxml.ps1,因为在此系统上禁用了脚本的执行。请参阅“获取有关about_signing的帮助”以了解更多详细信息。 尽管事实上我很早以前确实通过键入管理员运行的PS终端来启用Powersh
问题内容: 我有要从Python脚本调用的Perl脚本。我一直在寻找,并没有成功。我基本上是试图调用向Perl脚本发送1变量的方法,但是不需要Perl脚本的输出,因为它是一个自包含程序。 到目前为止,我想出的是: 只有刚刚开始的Python编程,所以我确定以上内容完全是胡说八道。任何帮助将非常感激。 问题答案: 如果您只想打开通往perl解释器的管道,那么您的方向正确。我认为您唯一缺少的是perl
问题内容: 在网站上运行Selenium测试时,我有一些Flash元素无法使用Selenium / Python进行测试。我想调用一个单独的终端窗口,运行Sikuli OCR测试,然后再返回Selenium / Python测试。我还不能完全弄清楚这一点。我将XXX放在我不知道新终端打开并运行Sikuli脚本的参数的位置。 我敢肯定,这里有几处错误。任何帮助将不胜感激。我已经搜索并阅读了可以在此找
问题内容: 我希望使用exiftool扫描照片和视频中的EXIF标签。这是一个perl可执行文件。推论这一点的最佳方法是什么?是否已有Python库可以执行此操作?还是应该直接调用可执行文件并解析输出?(后者似乎很脏。)谢谢。 我问的原因是因为我当前正在使用pyexiv2,该视频不支持视频。Perl的exiftool对图像和视频有非常广泛的支持,我想使用它。 问题答案: 为避免为每个图像启动新进程