首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从PHP中的系统函数调用特定的Python版本

从PHP中的系统函数调用特定的Python版本
EN

Stack Overflow用户
提问于 2014-07-09 19:46:44
回答 1查看 942关注 0票数 0

问题的根源在于,我试图从PHP脚本内部调用Python脚本。我在一个共享服务器上,安装了多个版本的Python:

代码语言:javascript
复制
/usr/bin/python -V ... 2.6
/home/tony/python/python -V ... 2.7
/home/tony/python/Python-3.2/python ... 3.2

echo $PATH ... /home2/tony/python/Python-3.2/
echo $PYTHONPATH... /home2/tony/python/lib/python3.2/site-packages

另外,我在Unix中做了一个别名:

代码语言:javascript
复制
alias python3='/home2/tony/python/Python-3.2/python'

下面是Python (test.py)的内容:

代码语言:javascript
复制
#!/usr/bin/python

import sys

print 'Python version:', sys.version_info

下面是PHP (test.php)的内容:

代码语言:javascript
复制
<?php

$py_script = "test.py";
$py_args = "name1=value1++name2=value2";

system('python ' . $py_script . ' ' . $py_args, $retval);

// $retval will have a trailing 0 or 1 at the end

$retval = trim($retval, "0 1");

echo $retval;

?>

但是当我在浏览器中点击test.php时,我仍然可以看到2.6版本。我不知道我的脚本的哪一部分必须更改,以强制使用上面的Python3.2(我需要2.6不能处理的3.2中的功能/模块)。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 20:23:04

您可以使用您的别名作为web服务器正在运行的用户(通常是debian或ubuntu上的www-data )。

代码语言:javascript
复制
 alias python3='/home2/tony/python/Python-3.2/python'

更改PHP

代码语言:javascript
复制
<?php

$py_script = "test.py";
$py_args = "name1=value1++name2=value2";

system('/home/tony/python/Python-3.2/python ' . $py_script . ' ' . $py_args, $retval);

// $retval will have a trailing 0 or 1 at the end

$retval = trim($retval, "0 1");

echo $retval;

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

https://stackoverflow.com/questions/24662537

复制
相关文章

相似问题

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