从 java 代码运行时,Python 脚本找不到依赖项
Posted
技术标签:
【中文标题】从 java 代码运行时,Python 脚本找不到依赖项【英文标题】:Python script can't find dependencies when running from java code 【发布时间】: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”从终端运行并从脚本运行的输出吗?当它不是相同的输出时,您正在运行不同的版本。
【参考方案1】:
尝试使用python3
。在大多数系统上,python
是指向 Python 2 解释器的链接。 :)
【讨论】:
以上是关于从 java 代码运行时,Python 脚本找不到依赖项的主要内容,如果未能解决你的问题,请参考以下文章
从 groovy 脚本运行 gsutil:找不到 Python 可执行文件