Как только интерактивная консоль Питона стартует, наберите следующие команды:
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.
В программах, которые мы разработаем, мы будем использовать этот метод документирования, где это уместно.
Изучение встроенных функций, функция dir()
Функция dir() выводит список все членов объекта. Этот объект может быть экземпляром, но также классом или модулем. Например, мы можем применить её к модулю Blender.Lamp:
dir(Blender.Lamp)
На выходе будет список всех членов модуля Blender.Lamp. Вы можете заметить функцию Get(), с которой мы столкнулись с ранее:
['ENERGY', 'Falloffs', 'Get', 'Modes', 'New', 'OFFSET',
'RGB', 'SIZE', 'SPOTSIZE', 'Types', '__doc__',
'__name__', '__package__', 'get']
Как только Вы выясните, что входит в состав класса или модуля, Вы можете затем выяснить наличие любой дополнительной информации помощи, применяя функцию help().
Конечно обе функции, как dir() так и help() - наиболее полезны, когда у вас уже есть какие-то мысли, где искать информацию. Но если это так, то они на самом деле могут быть очень удобными инструментами.
Знакомство со встроенным редактором
Вполне возможно использовать любой редактор (который вам нравится), чтобы писать скрипты на Питоне, а затем импортировать скрипты как текстовые файлы, но встроенного текстового редактора Блендера, вероятно, будет достаточно для всех потребностей программирования. Он представляет такие удобства, как, например, подсветка синтаксиса, нумерация строк и автоматический отступ, и дает Вам возможность запускать скрипты непосредственно из редактора. Способность запускать скрипт непосредственно из редактора даёт определенные блага при отладке из-за обратной связи, которую вы получите при возникновении ошибок. Вы не только получите информационное сообщение, но также ошибочная строка будет выделена в редакторе.
Читать дальше