python导入文件时php exec失败

时间:2011-08-12 16:53:02

标签: php python exec

我在php中有这个代码:

$var = "something";
$result = exec("python /somePath/someFile.py $var");
print $result;

和我的someFile.py是这样的:

import functions as f

x = f.removeSpace("hey   there")
print x 

现在,没有导入功能一切正常,但是当我尝试导入另一个模块然后php螺丝。我在我的python文件中包含了sys.stderr = sys.stdout,当我运行我的php代码时,它返回:

AttributeError: 'module' object has no attribute 'removeSpace'

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

我最近遇到过这样的问题。事实证明,PHP的exec没有将环境变量传递给它执行的程序,因此Python没有看到$PYTHONPATH,也不知道从哪里导入模块。

我不知道如何从PHP修复它,但在我们的例子中,将导入的包通过符号链接到与脚本相同的目录。

答案 1 :(得分:1)

检查您的functions模块,看看您是否定义了removeSpace功能。

这不是PHP问题,而是Python问题,您可能忘记定义该功能。

答案 2 :(得分:0)

我真的不知道python,但我认为问题是someFile.py无法找到您的functions - 模块。由于您是从PHP执行的,因此pwd的{​​{1}}将设置为php,而不是pwd