首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使PHP识别本地安装的Python模块以执行Python脚本

如何使PHP识别本地安装的Python模块以执行Python脚本
EN

Stack Overflow用户
提问于 2014-06-03 11:16:16
回答 1查看 105关注 0票数 0

我有以下Python代码,稍后将使用PHP调用这些代码:

代码语言:javascript
复制
#!/usr/bin/env python    
"""Code name: test.py"""
import BeautifulSoup

import sys
myargs = sys.argv[1]

mylist = ["foo bar qux", "uix nan col"]
for chunk in mylist:
    mems = chunk.split()
    mems.append(myargs)
    print mems

模块BeautifulSoup是在本地安装的:

代码语言:javascript
复制
$ echo $PYTHONPATH
/home/pdubois/.local/lib/python2.7/site-packages

下面是调用它的PHP代码

代码语言:javascript
复制
    <HTML>
    <HEAD>
    <TITLE>MYCODE</TITLE>
    </HEAD>
    <BODY>
    <BR>

     <?php echo '<p>This is the output of my code:</p>'; ?>
     <?php
         exec(`python /misc/path_to_mycode/test.py param1`,$output);
        var_dump($output)
     ?>

   </BODY>
   </HTML>

上面的index.php代码位于/var/www/html

我得到的结果是:

代码语言:javascript
复制
array(4) { [0]=> string(34) "Traceback (most recent call last):" 
[1]=> string(65) " File "/u21/pdubois/my_project/test.py", line 15, in " 
[2]=> string(24) " import BeautifulSoup" 
[3]=> string(42) "ImportError: No module named BeautifulSoup" }

当我在test.py中注释掉test.py时。PHP代码返回正确的预期结果:

代码语言:javascript
复制
array(2) { [0]=> string(31) "['foo', 'bar', 'qux', 'mcpip1']" 
[1]=> string(31) "['uix', 'nan', 'col', 'mcpip1']" }

问题是,我应该如何使PHP/Python/Apache识别BeautifulSoup或任何本地安装的模块?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-03 11:19:59

您为BeautifulSoup显示的目录显示在您的主目录中。但我怀疑Apache是否像您一样运行:很可能是以www的形式运行。因此,您需要为该用户或全局安装该模块。

当然,更好的方法是坚持一种语言:如果您想运行Python,那么使用Python框架编写网站;或者使用PHP解析器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24013779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档