有必要在命令上运行 python 脚本。没有使用jython,因为。该脚本包含 todoist-api 库。该脚本由以下命令启动:
try {
String cmd = "/home/kiryushin/projects/python/stm/venv/lib/stmtest1.py";
Process p = Runtime.getRuntime().exec(cmd);
}
catch (IOException e){e.printStackTrace();}
我得到一个例外 -
" java.io.IOException: Cannot run program "/home/kiryushin/projects/python/stm/venv/lib/stmtest1.py": error=13, Отказано в доступе"
更改了访问参数,包括通过 chmod -r 777. OC Ubuntu 18.04 lts。
从评论中可以清楚地看出,启动问题是没有找到 python 解释器。
一个
chmod +x [имя скрипта]不足以使文件可执行。更准确地说:正确可执行。解决方案
1.
chmod +x和“shebang”根据经典,需要在脚本“shebang”中添加第一行:
#!pythonor#!/usr/bin/pythonor#!//usr/bin/env pythonor even#p!ipenv run主要是要记住,创建的环境可能与在// etc和check 等中
Runtime.getRuntime()可以创建的环境不同。bashzshfish$PATH$PYTHONPATH2.
cmd直接在中指定解释器更改命令以不依赖“shebang”运行脚本并直接指定解释器:
再次检查 Runtime.getRuntime 创建的环境变量。
口译员:
pythonpipenv并运行 cpipenv run [имя скрипта]不知不觉中,在创建项目时,python 忘记了他表示创建虚拟环境,因此从 Runtime 运行脚本后,他无法拿起 todoist-api 库。所以我:
在我指定的脚本调用中:
字符串 cmd = "python3.6 /home/kiryushin/projects/python/stm2/stm.py"; 进程 p = Runtime.getRuntime().exec(cmd);