我目前正在开发一个在混合器中吐出.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天我一直在努力解决这个问题。
感谢任何帮助。
答案 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>";
代表当前目录,所以你也可以运气
./