php - PHP 返回 NULL 使用 Tensorflow 运行 Python 脚本
问题描述
首先,对不起,如果这似乎是一个重复的问题。但老实说,没有什么对我有用。在这里搜索了几个小时。
好的,所以我有一个名为 的 python 文件label_image.py
,代码如下:
import numpy as np
import tensorflow as tf
print("TEST")
当我尝试通过 PHP 文件调用脚本时:
$outpt = shell_exec('python label_image.py');
var_dump($outpt);
这将返回 NULL。
但是如果我在python文件中删除了tensorflow的导入,那么如下:
import numpy as np
print("TEST")
并运行 PHP 文件,它输出以下内容:
string(5) "TEST "
通过这个测试,可以推断出导入Tensorflow的那一行导致了NULL的返回。
正如我在另一个stackoverflow线程上所读到的,我尝试将它放在我的PHP文件之上:
PUTENV("/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/");
但它仍然不起作用。顺便说一句,我正在使用 Mac OS。
我将不胜感激任何帮助。
谢谢。
解决方案
如果定位张量流库有问题,我想你可以尝试PYTHONPATH
这样设置:
<?php
// PYTHONPATH setup
$pythonpath = getenv('PYTHONPATH'); // see if there is current setting
$additional = '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/'; // the location where the Tensorflow library is installed.
putenv(($pythonpath === false) ? "PYTHONPATH=$additional" : "PYTHONPATH=$pythonpath:$additional");
推荐阅读
- mongodb - MongoDB - 查询对象的键名
- python - 查找列之间不匹配的条目并遍历列
- php - VSCODE LARAVEL XDEBUG PHP DEBUG 扩展 - 不在断点处停止
- javascript - 我可以通过单击按钮检测我触发了哪些 javascipt 函数吗?
- python - 在霍夫函数中传递math.pi(pi数)的原因是什么?
- sql - 如何从以下选择中确定最有效的查询执行计划
- javascript - 从 node.js 发送一个简单的 json 到 index.html
- python - StandardPaths:运行时目录/run/user/1000的所有权错误,1000而不是0...如何在fedora上解决
- javascript - 为什么我无法收到删除请求的请求查询?
- laravel - 登录后获取路由在 laravel 的 vue js 组件中不起作用