我目前正在开发一个web应用程序,它在搅拌机中释放出一个.stl文件。我使用了php,我正在使用exec()调用php中的脚本。请看下面的代码。我找到了Php: Running a python script using blender from a php project using cmd commands的代码
$script = "C:\\xampp\\htdocs\\test\\test.py";
$blender_path = "C:\Program Files\Blender Foundation\Blender";
$output = exec("cd $blender_path && blender -b -P $script", $data);
echo "<pre>";
print_r($data);
echo "</pre>";而且在当地一切都很好。我将内容上传到我的站点(Linux主机),上传Blender(Linux - https://www.blender.org/download/)改变了路径,什么也没有发生。它甚至没有输出任何错误。linux是否有单独的命令行代码?我不习惯使用Linux,在过去的3天里,我一直在努力解决这个问题。
任何帮助都是非常感谢的。
发布于 2015-10-25 09:42:18
我能想到两种可能性。第一个是路径名,在linux上没有驱动器字符,路径应该类似于/home/aniket/tests/blendtest。
第二个与运行程序有关,我希望会有一个错误,但是您可能需要查看日志文件才能找到它,或者增加php的详细程度。第一点是,文件需要设置权限才能执行,这将涉及到chmod +x blender,或者可能使用ftp软件来设置它,它通常表示为权限字符串(如RWXRWXRWX )中的X。第二点是在*nix系统上找到命令的方式,有一个PATH环境变量列出要查找命令的目录,默认情况下当前目录不在该列表中,我不希望托管公司添加它。
$script = "/home/aniket/test1/test.py";
$blendexe = "/home/aniket/blender2.76/blender";
$output = exec("$blendexe -b -P $script", $data);
echo "<pre>";
print_r($data);
echo "</pre>";在*nix系统中,./表示当前目录,因此您也可以使用
$output = exec("cd $blender_path && ./blender -b -P $script", $data);https://stackoverflow.com/questions/33316406
复制相似问题