【问题标题】:Python script can't find dependencies when running from java code从 java 代码运行时,Python 脚本找不到依赖项
【发布时间】:2020-10-10 18:30:46
【问题描述】:

我的服务器正在使用 python 脚本启动进程,当它运行时出现错误:

    Traceback (most recent call last):
  File "save_boxes.py", line 2, in <module>
    import cv2
ImportError: No module named cv2

事实上我已经安装了opencv2,并且当我从终端运行它时脚本正在运行,不知道如何修复它,感谢任何建议,谢谢!

我运行脚本的代码是:

 Process process;
            try {
                final char dm = (char) 34;
                ProcessBuilder pb = new ProcessBuilder("./runC.sh", "myArg1", "myArg2");
                Map<String, String> env = pb.environment();
                env.put("VAR1", "myValue");
                env.remove("OTHERVAR");
                env.put("VAR2", env.get("VAR1") + "suffix");
                pb.directory(new File("/home/user/IdeaProjects/MyServer/"));
                process = pb.start();
        
                int exitCode = process.waitFor();
                if (exitCode != 0) {
                    throw new IOException("Command exited with " + exitCode);
                }
            } catch (Exception e) {System.out.println ("error message: " + e.getLocalizedMessage());}

脚本代码:

#!/bin/bash

python my_script.py

【问题讨论】:

  • 您确定python 命令指向python 3 或您使用的任何版本吗?通常,命令python 指向python 2,因此您可能必须使用python3 命令来运行python 3 解释器。
  • 当我从终端“python”命令运行时运行正常,但我尝试在脚本中将 python 更改为 python3 并且它有效,非常感谢,你可以写一个答案,我会接受它
  • 你能显示“which python”从终端运行并从脚本运行的输出吗?当它不是相同的输出时,您正在运行不同的版本。

标签: java python linux scripting


【解决方案1】:

尝试使用python3。在大多数系统上,python 是指向 Python 2 解释器的链接。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    • 2016-06-11
    • 2021-08-21
    • 2018-03-31
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多