运行 linux 主机上的 blender 脚本

Running a blender script on linux hosting

我目前正在开发一个 Web 应用程序,该应用程序会在 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 托管),上传的 Blender(Linux - https://www.blender.org/download/)更改了路径,但没有任何反应。它甚至不输出任何错误。 linux 是否有单独的命令行代码?我不习惯使用 Linux,过去 3 天我一直在为此苦苦挣扎。

感谢任何帮助。

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

第二个与 运行 程序有关,我预计会出现错误,但您可能需要查看日志文件才能找到它或增加 php 的详细程度。第一点是文件需要设置权限才能执行,这将涉及 chmod +x blender 或者可能使用您的 ftp 软件来设置它,它通常在权限字符串中表示为 X喜欢 RWXRWXRWX。第二点是在 *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);