运行 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);
我目前正在开发一个 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);