python - 通过 Laravel 控制器执行 Python 脚本
问题描述
这可能是一个简单的问题,但我找不到适合我的解决方案。所以我想通过 laravel 中的控制器启动一个 python 脚本。到目前为止,我尝试了 exec()、shell_exec() 和这个:
$cmd = "py pathtoSkript/example.py";
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
我的python版本是:Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (I
当进程启动时,它应该只像你输入的那样运行脚本:
py yourPath/example.py
在 Windows 外壳中。在我的情况下,shell_exec() 会占用当前会话并且 exec 不起作用。当我通过 pycharm 执行脚本时,该脚本工作正常。
解决方案
尝试这个
$command = escapeshellcmd('py pathtoSkript/example.py');
$output = shell_exec($command);
$output;
参考链接https://www.php.net/manual/en/function.escapeshellcmd.php
推荐阅读
- ios - 通过 vtable 调度比散列表更快,但如果在任何地方使用会消耗大量内存
- swift - 如果数据库中已存在用户,则拒绝创建用户
- php - 使用 PHP/Windows/MySQL 连接到 GDB(或 FDB)数据库文件
- javascript - 如何检查 URL 是否仅包含使用 javascript 的域?
- unit-testing - Roboletric 4.0.1 不断在 buildActivity 上抛出 Resources$NotFoundException
- javascript - three.js 用 3d '绳索' 连接两个移动的物体
- azure - 天蓝色嵌套模板依赖处理错误
- vue.js - Vue js vuelidate 无法读取动态验证模式中的自定义验证
- python - 在 RasPi 上使用 psutil(Python 模块)的问题
- node.js - 确保子文档的属性在猫鼬中具有唯一值