Написание скриптов для Blender 2.49 - Michel Anders
Шрифт:
Интервал:
Закладка:
Также, важно иметь в виду, что Питон предлагает нам значительно больше, чем просто инструменты (уже впечатляющие), для автоматизации всех видов задач в Блендере. Питон является общим языком программирования с включенной расширенной библиотекой, так что мы не обязаны прибегать ко внешним инструментам для общесистемных задач, таких, как например, копирование файлов или архивации каталога. Даже сетевые задачи могут быть весьма легко реализованы, что доказывает множество предоставляемых рендер-ферм.
Некоторые батарейки включеныКогда мы устанавливаем Блендер, интерпертатор Питона уже является частью приложения. Это означает, что нет необходимости устанавливать Питон как отдельное приложение. Но Питон это больше, чем просто интерпретатор. Питон поставляется с огромным набором модулей, которые обеспечивают массу функциональности. В нём доступно что-нибудь от манипуляции файлами до работы с XML и более, и лучше всего то, что эти модули являются стандартной частью языка. Они так же хорошо функционируют, как сам интерпретатор Питона и (с некоторыми исключениями), имеются на любой платформе, на которой работает Питон.
Обратная сторона этого - конечно, что этот набор модулей довольно большой (40MB или около того), так что разработчики Блендера решили распространять только чистый минимум, в первую очередь математический модуль. Это имеет смысл, если Вы хотите держать размер Блендера приемлемым для загрузки. Многие разработчики на Питоне пришли к зависимости от стандартного дистрибутива, потому что при этом не приходится изобретать колесо, и это экономит огромное количество времени, не говоря уже, что это не простая задача - разработать и протестировать полноценную XML-библиотеку только потому, что вам нужно уметь читать простые XML-файлы. Вот почему теперь более или менее единодушно считается, что хорошо бы устанавливать полный дистрибутив Питона. К счастью, установка так же легка, как и установка самого Блендера, даже для конечных пользователей, так как бинарные инсталляторы предусмотрены для многих платформ, как например, Windows и Mac, а также в 64-битовых версиях. (Распространение для Linux предусмотрено в виде исходного кода с инструкциями о том как его компилировать, но множество дистрибутивов Linux или уже автоматически предоставляют Питон, или впоследствии установить его очень легко из пакетного репозитория).
Проверьте наличие полного дистрибутива ПитонаЕсть шанс того, что у вас уже есть полный дистрибутив Питона в вашей системе. Вы можете проверить это, запустив Блендер и проверив консольное окно (термин консоли относится либо к DOS-окну, которое появится параллельно в Windows или окно X-терминала, если Вы запускаете Блендер в других системах), чтобы увидеть, отображает ли оно следующий текст:
Compiled with Python version 2.6.2.
Checking for installed Python... got it!
Если это так, тогда Вы ничего не должны делать, и можете сразу перейти к разделу Интерактивная консоль Питона. Если появляется следующее сообщение, тогда Вы должны предпринять некоторые действия:
Compiled with Python version 2.6.2.
Checking for installed Python... No installed Python
found.
Only built-in modules are available. Some scripts
may not run.
Continuing happily.
Инсталлирование полного дистрибутива ПитонШаги для полной установки Питона для Windows или Mac - следующие:
1. Загрузите подходящий инсталлятор со страницы http://www.python.org/download/. На момент написания, самая последняя стабильная 2.6 версия - это 2.6.2 (использованная в Блендере 2.49). Это обычно хорошая мысль - устанавливать самую последнюю стабильную версию, так как она будет содержать самые последние исправления. Убедитесь, тем не менее, что вы используете ту же мажорную версию, как и та, с которой скомпилирован Блендер. Будет правильным использовать версию 2.6.3, когда она будет выпущена, если Блендер скомпилирован с версией 2.6.2. Но если Вы используете более старую версию Блендера, который скомпилирован с Питоном 2.5.4, Вы должны установить самую последнюю 2.5.x версию Питона (или обновиться до Блендера 2.49, если есть возможность).
2. Запустите инсталлятор: В Windows он предложит Вам выбрать, куда установить Питон. Вы можете выбрать что-нибудь, что вам нравится, но если Вы выбираете заданное по умолчанию, Блендер почти несомненно найдёт установленные здесь модули без необходимости настраивать переменную PYTHONPATH. (смотри ниже)
3. (Пере) запустите Блендер. Консоль Блендера должна показать текст:
Compiled with Python version 2.6.2.
Checking for installed Python... got it!
Если этого не произойдёт, вероятно, необходимо настроить переменную PYTHONPATH. Посмотрите вики Блендера для более подробной информации: http://wiki.blender.org/index.php/Doc:Manual/Extensions/Python
На Ubuntu Linux первый шаг не нужен, и установку можно провести посредством использования встроенного пакетного менеджера:
sudo apt-get update
sudo apt-get install python2.6
Другие дистрибутивы могут использовать другую пакетную систему, так что Вам нужно посмотреть документацию об этом.
Интерактивная консоль ПитонаЧтобы увидеть, где Блендер действительно ищет модули, Вы можете посмотреть на переменную Питона sys.path. Чтобы сделать это, Вы должны запустить интерактивную консоль Питона в Блендере. Заметьте, что при этом используется другая и, возможно, здесь вы запутаетесь с понятиями консоли, - DOSBox или окно терминала, которое стартует одновременно с основным окном Блендера, и где появляются различные информационные сообщения также называется консолью! Интерактивная консоль Питона, которую мы хотим использовать, запускается в окне скриптов:
Как только интерактивная консоль Питона стартует, наберите следующие команды:
import sys
print sys.path
Заметьте, что в интерактивной консоли Питона не видно никаких подсказок (если только при этом не ожидается отступ, например в цикле for), но всё, что Вы набираете, будет отличаться цветом (белый на черном по умолчанию) от того, что возвращается (это будет синий или черный). Две предыдущие команды дадут нам доступ к модулю Питона sys, который содержит различные переменные с системной информацией. Переменная sys.path, которую мы печатаем, содержит все каталоги, в которых будет вестись поиск, когда мы попытаемся импортировать модуль. (Заметьте, что импортирование sys всегда будет работать, поскольку sys - встроенный модуль.) Результат будет чем-то, аналогичным этому:
['C:\Program Files\Blender Foundation\Blender',
'C:\Program Files\Blender
Foundation\Blender\python26.zip', 'C:\Python26\Lib',
'C:\Python26\DLLs',
'C:\Python26\Lib\lib-tk', 'C:\Program Files\Blender
Foundation\Blender',
'C:\Python26', 'C:\Python26\lib\site-packages',
'C:\Python26\lib\site-packages\PIL',
'C:\PROGRA~1\BLENDE~1\Blender',
'C:\Documents and Settings\Michel\Application
Data\Blender Foundation\Blender\.blender\scripts',
'C:\Documents and Settings\Michel\Application
Data\Blender
Foundation\Blender\.blender\scripts\bpymodules']
Если ваш каталог установки Питона не присутствует в этом списке, тогда Вы должны настроить переменную PYTHONPATH перед запуском Блендера.
Изучение встроенных модулей, функция help()
Интерактивная консоль Питона является также хорошей платформой для изучения встроенных модулей. Поскольку Питон поставляется оснащенным двумя очень полезными функциями, help() и dir(), у вас есть мгновенный доступ к большому количеству информации, содержащейся в модулях Блендера (и Питона), как к большой документации, предусмотренной в виде части кода.
Для людей, не знакомых с этими функциями, вот два коротких примера, оба работают из интерактивной консоли Питона. Для того, чтобы получить информацию о специфическом объекте или функции, наберите:
help(Blender.Lamp.Get)
Информация будет выведена в этой же консоли:
Help on built-in function Get in module Blender.Lamp:
Lamp.Get (name = None):
Return the Lamp Data with the given name,
None if not found, or Return a list with all
Lamp Data objects in the current scene,
if no argument was given.
Перевод:
Помощь по встроенной функции Get в модуле Blender.Lamp:
Lamp.Get (name = None):
Возвращает Данные лампы Lamp с именем name, None
если не она обнаружена, или возвращает список со
всеми объектами данных ламп в текущей сцене, если
вызвана без аргумента.
Функция help() показывает связанную строку документирования функций, классов, или модулей. В предыдущем примере показана информация, предоставленная вместе с методом или функцией Get() класса Lamp. Строка документирования является первой строкой в определении функции, класса, или модуля. Когда вы определяете ваши собственные функции, было бы хорошо, если бы вы делали также. Это может выглядеть примерно так: