1. Организация файлов

Для реализации программного интерфейса используется Python версии 3.2.2 (http://python.org/). Он поставляется вместе с дистрибутивом клиента Cerebro (https://cerebrohq.com/).

Также в поставку с дистрибутивом включены сторонние пакеты:

Файлы программного интерфейса расположены в папке py-frontend. Python и сторонние пакеты расположены в папке py-site-packages. Обе папки находятся рядом с исполняемым файлом приложения Cerebro.

Примечание

В случае операционной системы Mac OS X эти папки могут располагаться как внутри контейнера Cerebro.app (Cerebro.app/Contents/MacOs/), так и рядом с ним. Сначала проверяются папки рядом с контейнером Cerebro.app. Это сделано для удобства хранения Python-модулей на сервере сразу для всех операционных систем. То есть, если у вас все исполняемые файлы Cerebro для всех ОС расположены на сервере в одной папке, то папки для Python-модулей будут находиться внутри неё в единственном экземпляре.

В папке py-frontend лежат шаблоны расширяемых модулей, пакет cerebro и пакет примеров examples.

Структура файлов Cerebro Python API на жестком диске:

Cerebro/

    cerebro

    py-frontend/
        examples/
            ...
        cerebro/
            ...
        event.py.template
        logoff.py.template
        logon.py.template
        menu.py.template

    py-site-packages/
        linux32/
            ...
        linux64/
            ...
        mac/
            ...
        psycopg2/
            ...
        win/
            ...
        html2text.py
        python32.zip
        xlrd3.zip
        xlwt3.zip

    ...

1.1. Где приложение ищет пользовательские модули

Пользовательские пакеты и модули по умолчанию ищутся:

  • в корневой директории, рядом с исполняемым файлом приложения Cerebro;
  • в папке py-frontend;
  • в папке py-site-packages;
  • в папках py-site-packages/linux32, py-site-packages/linux64, py-site-packages/mac и py-site-packages/win в зависимости от операционной системы.

Все пути для поиска можно посмотреть в переменной sys.path. Вы также можете добавить дополнительные пути поиска в эту переменную, но делать это нужно до импорта пакета/модуля, который расположен по этому пути.