首页 > 解决方案 > 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。

我将不胜感激任何帮助。

谢谢。

标签: phppythonpython-3.xmacostensorflow

解决方案


如果定位张量流库有问题,我想你可以尝试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");


推荐阅读