Открытие Blender (программы) из определенного пути к файлу, относительных путей, исполняемого файла Unix

В моем предыдущем вопросе: " Открыть файл из определенной программы из python", я узнал, как использовать подпроцесс для открытия программы (Blender) - ну, конкретный .blend файл - из определенного пути к файлу с этим кодом.

import os
import subprocess

path = os.getcwd()
os.system("cd path/")
subprocess.check_call(["open", "-a", os.path.join(path, "blender.app"),"Import_mhx.blend"])

С помощью парня на форуме я хотел использовать относительные пути внутри .blend файл, поэтому я изменил код таким образом (для Windows)

import os
import subprocess

# This should be the full path to your Blender executable.
blenderPath = "/cygdrive/c/Program Files/Blender Foundation/blender-2.62-release-windows32/blender.exe"

# This is the directory that you want to be your "current" directory when Blender starts
path1 = "/Users/user/Desktop/scenario/Blender"

# This makes makes it so your script is currently based at "path1"
os.chdir(path1)

subprocess.check_call([blenderPath, "Import_mhx.blend"])

и для Mac,

import os
import subprocess

path = os.getcwd()
os.system("cd path/")
print (path)
# This should be the full path to your Blender executable.
blenderPath = path + "/blender.app/Contents/macos/blender"

# This is the directory that you want to be your "current" directory when Blender starts
path1 = "/Users/user/Desktop/scenario/Blender"

# This makes makes it so your script is currently based at "path1"
os.chdir(path1)

subprocess.check_call([blenderPath, "Import_mhx.blend"])

Результаты:

  1. В винде работает нормально.
  2. В Mac, в результате файл открывается, но программа не открывается. Это довольно странно, я думаю.

Вопросы:

  1. Есть ли какое-либо расширение, которое я должен разместить для блендера (исполняемый файл UNIX), чтобы он мог открыться?
  2. Есть ли другой способ, которым я могу сделать это, чтобы правильно открыть программу, но также иметь возможность использовать относительные пути внутри .blend файлы?

1 ответ

Решение
import os
import subprocess

blenderPath = "./blender.app/Contents/MacOS/blender"

path1 = "./"

os.chdir(path1)

subprocess.check_call([ blenderPath, "Animation.blend"])

Оба блендера открываются идеально, и относительные пути внутри.blend файла работают нормально:)

Другие вопросы по тегам