首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux主机上运行混合器脚本

在linux主机上运行混合器脚本
EN

Stack Overflow用户
提问于 2015-10-24 09:04:55
回答 1查看 152关注 0票数 1

我目前正在开发一个web应用程序,它在搅拌机中释放出一个.stl文件。我使用了php,我正在使用exec()调用php中的脚本。请看下面的代码。我找到了Php: Running a python script using blender from a php project using cmd commands的代码

代码语言:javascript
复制
$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天里,我一直在努力解决这个问题。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-25 09:42:18

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

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

代码语言:javascript
复制
$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系统中,./表示当前目录,因此您也可以使用

代码语言:javascript
复制
$output = exec("cd $blender_path && ./blender -b -P $script", $data);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33316406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档