【问题标题】:Run java command from Google colab notebook从 Google colab notebook 运行 java 命令
【发布时间】:2020-03-03 00:08:29
【问题描述】:

我正在尝试在 Google Colab 上训练自定义 NER 模型。我在 VM 上安装了 Java 并运行以下命令来调用 NER jar 文件。但似乎什么也没有发生。

import subprocess
subprocess.call(['java', '-jar', '/content/gdrive/stanford-ner.jar', 'edu.stanford.nlp.ie.crf.CRFClassifier', '-prop prop.txt'])

我在屏幕上看到 1 但没有训练有素的模型。

我尝试了子进程,但命令没有执行。

import subprocess
cmd="java -cp /content/gdrive/stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop prop.txt"
output = subprocess.check_output(cmd)

错误是

FileNotFoundError: [Errno 2] 没有这样的文件或目录: 'java -cp /content/gdrive/stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop prop.txt': 'java - cp /content/gdrive/stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop prop.txt'

【问题讨论】:

    标签: python-3.x google-colaboratory


    【解决方案1】:

    来自 python 文档

    在 Unix 上,如果 args 是一个字符串,则该字符串被解释为要执行的程序的名称或路径。

    https://docs.python.org/2/library/subprocess.html

    因此,您正在尝试执行一个名为"java -cp ..." 的程序,该程序肯定不存在。您想将args 拆分为["java", "-cp", ...] 的数组。

    但更简单地说,在 Colab 中,您可以使用 ! 调用 shell 命令,因此您可以这样做

    !java -cp ...
    

    另外,请确保 java$PATH 中。

    【讨论】:

    • 感谢您的 cmets。我有一种在 colab 上运行 java 代码的新方法。我能够使用 subprocess 和 cmd 方法来运行我的代码。问题是位于错误的目录并执行代码。
    猜你喜欢
    • 2021-07-13
    • 1970-01-01
    • 2021-05-12
    • 2019-05-04
    • 1970-01-01
    • 2020-10-25
    • 2021-08-18
    • 2016-07-15
    • 1970-01-01
    相关资源
    最近更新 更多