我有以下Python代码,稍后将使用PHP调用这些代码:
#!/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是在本地安装的:
$ echo $PYTHONPATH
/home/pdubois/.local/lib/python2.7/site-packages下面是调用它的PHP代码
<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。
我得到的结果是:
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代码返回正确的预期结果:
array(2) { [0]=> string(31) "['foo', 'bar', 'qux', 'mcpip1']"
[1]=> string(31) "['uix', 'nan', 'col', 'mcpip1']" }问题是,我应该如何使PHP/Python/Apache识别BeautifulSoup或任何本地安装的模块?
发布于 2014-06-03 11:19:59
您为BeautifulSoup显示的目录显示在您的主目录中。但我怀疑Apache是否像您一样运行:很可能是以www的形式运行。因此,您需要为该用户或全局安装该模块。
当然,更好的方法是坚持一种语言:如果您想运行Python,那么使用Python框架编写网站;或者使用PHP解析器。
https://stackoverflow.com/questions/24013779
复制相似问题