Написание скриптов для Blender 2.49 - [5]

Шрифт
Интервал

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. Строка документирования является первой строкой  в определении функции, класса, или модуля. Когда вы определяете ваши собственные функции, было бы хорошо, если бы вы делали также. Это может выглядеть примерно так:

>def square(x):

>   """

>   calculate the square of x.

>   (вычисление квадрата x.)

>   """

>   return x*x

Мы можем теперь применить функцию помощи к нашей вновь определённой функции подобно тому, как мы делали прежде:

>help(square)

На выходе появится:

>Help on function square in module __main__:

>square(x)

>    calculate the square of x.

В программах, которые мы разработаем, мы будем использовать этот метод документирования, где это уместно.