Blender 2.7 MacOS控制台错误

时间:2014-04-25 20:53:28

标签: python blender

我在我的Mac上使用Blender 2.7(OS 10.9.2),控制台无法正常打开。如果我打开blender.app/Contents/MacOS/blender,我会得到一个新的终端窗口,但它充满了易读和难以理解的字符,如“œ˙Ì˛Ä&àÖÄH__PAGEZERO__TEXTÃÔ。 Blender也不会记录任何打印语句或错误。

任何人都知道发生了什么事?

谢谢!

编辑:我也是终端新手,并尝试使用/ Contents / MacOS目录中的“open blender”:P。如果您从父目录中键入“./blender”,它就可以正常工作。

如果有人能够了解正在发生的事情或输入“./filename”和“打开文件名”之间的区别,那就太棒了。

2 个答案:

答案 0 :(得分:2)

Blender有需要运行的各种资源,它们与二进制文件位于同一个文件夹中,它从当前工作目录开始,以便在启动blender时找到它们。

在终端中输入命令,有一个序列(在PATH变量中定义)到搜索命令的位置,命令前缀为./表示在当前工作目录中运行命令而不是在PATH列表中搜索它。

命令open意味着在合适的编辑器中打开可编辑文件,看起来它可以用终端处理它,但新终端将在你的主目录中启动,让blender无法找到它& #39; s资源。自从我使用OSX以来已经过了几年,但它也可能尝试将blender二进制文件作为shell脚本运行。无论哪种方式打开都不会处理可运行的二进制文件,并且没有设计为。

所以区别在于open blender就像是要编辑文件,但./blender实际上是从命令行运行应用程序。

您可能还会发现创建一个AppleScript非常容易,它告诉终端更改工作目录并启动blender。这可以很容易地保存为您可以从查找程序启动的应用程序。我认为(未经测试) -

tell application "Terminal"
 do script "cd /Applications/blender/blender.app/Contents/MacOS && ./blender"
end tell

如果你想要的只是你运行脚本时的python输出,你可能想尝试the script here - 它允许你在blender的python控制台中运行一个脚本来捕获输出。

如果你想要blender特定的python脚本帮助,请在blender.stackexchange

询问

答案 1 :(得分:0)

很抱歉,如果这个答案不是你的问题,而是与主题有关:

听取所有mac用户的意见,这里有适合你的东西:

我自己的“烦恼”经验和this guy (sambler)的想法帮助我为了打开终端搅拌机而制作了一个简单的应用程序。

---请尝试一下,它很容易安装和超级方便---

here是应用程序,如果你想要它,在这里...

..是如何使用它:

  1. 使用finder导航到blender.app。
  2. enter image description here

    1. 右键单击搅拌机并选择“显示包装内容”。
    2. enter image description here

      1. Download该应用并将其解压缩。
      2. enter image description here

        1. 将应用程序拖到blender的“Contents”文件夹中。
        2. enter image description here

          1. 将应用程序拖到停靠位置并首次打开。
          2. enter image description here

            1. (可选)在房间里翩翩起舞,唱出你有多幸运拥有这样的应用程序。



            2. 另外这里是applescript来源:(目前有很多有用的评论)

              set myPath to ((path to current application) as string) --find the path to blenderOpen.app
              set myPath to ((characters 1 through ((length of myPath) - 1) of myPath) as string) --rip off the last ":"
              set charDelete to (last character of myPath) -- rip off the "blenderOpen.app"
              repeat until charDelete = ":" -- rip off the "blenderOpen.app"
                  set myPath to ((characters 1 through ((length of myPath) - 1) of myPath) as string) -- rip off the "blenderOpen.app"
                  set charDelete to (last character of myPath) -- rip off the "blenderOpen.app"
              end repeat
              set myPath to myPath & "MacOS" --find the blender runtime by appending this path
              
              set myPath to quoted form of the POSIX path of myPath -- convert path so terminal understands
              (*
              why this little if statement down below?
              This if statement is here because if a user
              opens terminal and runs some command,
              then afterwards runs our script,
              we want to use a new window so as not
              to interfere with the user.
              However, if WE open terminal,
              than we want to use the window 
              that terminal just made for us.
              *)
              
              if testterminal() then
                  tell application "Terminal" to do script "cd " & myPath & " && ./blender" -- tell terminal to open new window, and open blender, Voila!!!
              else
                  tell application "Terminal" to tell front window to do script "cd " & myPath & " && ./blender" -- tell terminal to open blender, in the current window, Voila!!!
              end if
              
              
              return myPath
              on testterminal()
                  tell application "System Events" to (name of processes) contains "Terminal"
              end testterminal