在PHP调用的Python中导入库



我试图从PHP文件调用Python脚本,但当我必须加载本地库时,它失败了。如果我的PHP不加载本地库,它可以调用我的python,并且我的python脚本在手动启动时可以工作。

以下是最小(非(工作文件:

index.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<?php
$command = escapeshellcmd ("./getter.py") ;
$output = shell_exec ($command) ;
echo "<p>$output</p>" ;
?>    
</body>
</html>

getter.py

#!/usr/bin/env python2
import got
if __name__ == "__main__" :
print "Python2 working"

其中got是当地著名的图书馆。

当我手动启动./getter.py时,打印正在进行,但我的网页没有显示任何内容。当我评论import got时,网页也显示打印。

附加信息:

  • 操作系统:Ubuntu 18.04.1
  • 服务器网址:nginix 1.14.0
  • PHP:7.2
  • Python:2.7.15rc1
  • 我是一个网络语言新手,所以我还不知道去bug工具
  • 导入非本地库(如oscsv或其他库(时没有问题
  • 我试着用一个简单的$output = shell_exec ("./getter.py") ;代替$command = escapeshellcmd ("./getter.py") ; $output = shell_exec ($command) ;
  • 我试着用#!/usr/bin/python2替换#!/usr/bin/env python2
  • 当我要求PHP或Python给我他们当前的工作目录时,他们都会按计划返回/var/html/www/test中的目录

这是一个文件夹树:

├── getter.py
├── got
│   ├── __init__.py
│   ├── manager
│   │   ├── __init__.py
│   │   ├── TweetCriteria.py
│   │   └── TweetManager.py
│   └── models
│       ├── __init__.py
│       └── Tweet.py
├── index.php
├── __init__.py
└── lib
   ├── __init__.py
   └── toto.py

非常感谢。

这实际上是由依赖性问题引起的。某些必需的库仅为某些用户安装。Nginx无法以root身份访问它,而普通用户可以。

相关内容

  • 没有找到相关文章

最新更新