在linux主机上运行一个blender脚本

时间:2015-10-24 09:04:56

标签: php python linux blender

我目前正在开发一个在混合器中吐出.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托管),Uploaded Blender(Linux - https://www.blender.org/download/)改变了路径,没有任何反应。它甚至不输出任何错误。 linux有单独的命令行代码吗?我不习惯使用Linux,过去3天我一直在努力解决这个问题。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我可以想到两种可能性。第一个是路径名,在linux上没有驱动器号,路径应该是/home/aniket/tests/blendtest

第二个与运行程序有关,我希望会出现错误,但您可能需要查看日志文件才能找到它或增加php的详细程度。第一点是文件需要设置为可执行的权限,这将涉及chmod +x blender或者可能使用您的ftp软件来设置它,它通常在{{1}等权限字符串中表示为X }}。第二点是在* nix系统上找到命令的方式,有一个PATH环境变量列出了查找命令的目录,默认情况下当前目录不在该列表中,我不希望托管公司加上它。

RWXRWXRWX

On * nix系统$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>"; 代表当前目录,所以你也可以运气

./