我在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'
有什么建议吗?
答案 0 :(得分:2)
我最近遇到过这样的问题。事实证明,PHP的exec
没有将环境变量传递给它执行的程序,因此Python没有看到$PYTHONPATH
,也不知道从哪里导入模块。
我不知道如何从PHP修复它,但在我们的例子中,将导入的包通过符号链接到与脚本相同的目录。
答案 1 :(得分:1)
检查您的functions
模块,看看您是否定义了removeSpace
功能。
这不是PHP问题,而是Python问题,您可能忘记定义该功能。
答案 2 :(得分:0)
我真的不知道python
,但我认为问题是someFile.py
无法找到您的functions
- 模块。由于您是从PHP
执行的,因此pwd
的{{1}}将设置为php
,而不是pwd
。