Интерфейс Python: установка

Чтобы использовать интерфейс Python для OrcaFlex, вам необходимо установить Python, а также файлы интерфейса OrcFxAPI.

Чтобы использовать интерфейс Python для OrcaFlex, вам необходимо установить Python, а также файлы интерфейса OrcFxAPI.py и OrcFxAPIConfig.py, которые мы предоставляем - см. Ниже.

Интерфейс Python для OrcaFlex требует версии Python 2.7 или версии Python от 3.4 до 3.9 включительно. Python 2.7 теперь объявлен устаревшей версией, и все новые разработки происходят в Python 3 (Python wiki: Python 2 или Python 3). Официальная поддержка Python 2.7 закончится в 2020 году, поэтому мы рекомендуем использовать Python 3, если конкретный модуль, который вам нужен, не доступен только для Python 2, или вам нужно поддерживать совместимость с существующими скриптами Python, которые вы используете.

Если вы используете OrcaFlex 9.6 или новее, у вас есть выбор между 32-битным или 64-битным Python. Любой вариант будет работать с OrcaFlex, и выбирать между этими двумя вариантами практически невозможно.

Python имеет полный набор поддерживающих библиотек, включая NumPy и SciPy, которые предоставляют некоторые полезные функции для научных вычислений, см. Http://numpy.scipy.org/ для получения дополнительных сведений. NumPy требуется для использования интерфейса Python.

Модули Python можно получить из репозитория пакетов PyPI, а также со страницы Кристофа Голке. Последний является хорошим источником для 64-битных предварительно скомпилированных двоичных пакетов Python сторонних производителей для последних версий Python, первый репозиторий используется удобным встроенным установщиком пакетов Python - pip. См. Раздел Получение NumPy и других пакетов для стандартного Python ниже для получения информации о получении сторонних модулей.

Python можно загрузить с http://www.python.org/download/, и он прост в установке (полная информация содержится в файлах для загрузки):

При запуске внешних функций Python или действий после вычисления OrcaFlex обнаруживает последнюю версию Python 2 или Python 3, которую он может найти установленной. Последние обнаруженные версии Python будут зависеть от имеющейся у вас версии OrcaFlex (см. Таблицу ниже). Однако вы можете использовать более раннюю версию OrcaFlex с более поздней версией Python, если просто вызываете OrcaFlex из скрипта Python; например, вы можете управлять OrcaFlex 9.6 из скрипта, запущенного на Python 3.5.

Предупреждения:В Python версии 2.7.13 есть ошибка, из-за которой не удается импортировать модуль OrcFxAPI. Вам не следует устанавливать эту конкретную версию Python.
В Python версии 2.7.11 есть ошибка, из-за которой OrcaFlex закрывается при попытке запустить внешнюю функцию или действие после вычисления. Вам не следует устанавливать эту конкретную версию Python.
В Python есть ошибка, представленная в версии 3.8.0 (только 32-разрядная версия), которая приводит к сбою Python при использовании DynamicsProgressHandler или SolveEquation.
Версия OrcaFlex Обнаружена последняя версия Python
11.1aPython 2.7, 3.9 (32 и 64 бит)
11,0 гPython 2.7, 3.9 (32 и 64 бит)
10.3ePython 2.7, 3.8 (32 и 64 бит)
10.2dPython 2.7, 3.7 (32 и 64 бит)
10.1cPython 2.7, 3.6 (32 и 64 бит)
10.0aPython 2.7, 3.5 (32 и 64 бит)
9,8аPython 2.7, 3.4 (32 и 64 бит)
9.7aPython 2.7, 3.3 (32 и 64 бит)
9.6aPython 2.7, 3.2 (32 и 64 бит)
9.2аPython 2.7 (32 бит)

Учебники по Python см. На http://docs.python.org/. Мы также рекомендуем книгу Марка Латца «Изучение Python».

Научные распределения Python

Существует ряд дистрибутивов Python, в которых предварительно упакованы некоторые полезные вспомогательные библиотеки (включая NumPy и SciPy), такие как Anaconda, Enthought, Python-XY и другие. Некоторые из этих дистрибутивов устанавливают Python таким образом, что OrcaFlex не может найти DLL Python, или DLL Python изменяется и вызовы из OrcaFlex завершаются ошибкой. Эти проблемы проявляются в виде ошибок при попытке запустить внешние функции или действия после вычисления, но вызов API OrcaFlex из консоли Python может работать. Мы рекомендуем использовать загрузки Python по ссылкам выше, а затем получить вспомогательные библиотеки отдельно со страницы Кристофа Гольке. См. Использование нестандартных дистрибутивов Python для получения дополнительных сведений о возможных проблемах.

Установка интерфейса Python в OrcaFlex

Интерфейс Python для OrcaFlex включен на установочный диск OrcaFlex и устанавливается при установке OrcaFlex, хотя (очевидно) только в том случае, если Python уже присутствует в это время. Чтобы установить интерфейс Python вручную (например, если вы устанавливаете Python на свой компьютер толькопослетого,каквы установили OrcaFlex), вы должны запустить файл InstallPythonInterface.bat в подкаталоге OrcFxAPI \ Python \ каталога установки OrcaFlex. Каталог установки Python должен находиться на вашем пути к Windows. Дополнительные сведения см. В разделе «Проблемы при установке интерфейса Python».

Использование Python OrcFxAPI

После установки Python и интерфейса Python в OrcaFlex вам необходимо включить следующую строку в свои скрипты Python для доступа к интерфейсу:

Импорт таким способом означает, что любые ссылки на объекты OrcFxAPI должны иметь префикс OrcFxAPI. Например:

Для скриптов Python, запускаемых из OrcaFlex (Внешние функции и Действия после вычисления), вам не нужно использовать импорт OrcFxAPI, поскольку OrcaFlex делает это за вас. Однако вам все равно нужно использовать префикс OrcFxAPI для объектов OrcFxAPI.

Проблемы при установке интерфейса Python

Эта ошибка возникает из-за того, что интерфейсный модуль OrcaFlex Python (OrcFxAPI.py) отсутствует в библиотеке Python. Модули OrcFxAPI.py (и OrcFxAPIConfig.py) должны находиться в \ Lib \ site-packages \. Чтобы устранить эту ошибку, попробуйте следующее.

Если у вас OrcaFlex версии 9.8a, вы можете увидеть ошибку, что OrcFxAPIConfig.py не может быть найден. Это происходит из-за проблемы с установщиком для этой версии OrcaFlex, в которой пропущен этот файл Python. Чтобы получить недостающий файл, примените последнее обновление для OrcaFlex 9.8 отсюда: OrcaFlex 9.8.

После установки Python или если вы только что установили новую версию OrcaFlex, вам необходимо запустить сценарий InstallPythonInterface.bat, который находится в подкаталоге \ OrcFxAPI \ Python \ каталога установки OrcaFlex. Этот сценарий копирует модули OrcaFlex Python в каталоги библиотек всех версий Python, имеющихся на вашем компьютере, которые могут быть обнаружены. Обратите внимание, этот сценарий требует, чтобы Python был на вашем пути к Windows - см. Следующий пункт.

Если после запуска файла InstallPythonInterface.bat вы по-прежнему получаете ту же ошибку, вероятная причина в том, что ваша установка Python находится не на пути к Windows. Вы можете проверить, так ли это, попытавшись запустить Python из консоли Windows, и вы получите следующую ошибку:

Вы можете добавить каталог установки Python в путь Windows, отредактировав переменную среды Path, доступную из панели управления. Перейдите в окно «Система», затем выберите «Дополнительные параметры системы»и нажмите «Переменные среды». Переменная Path есть как в системных, так и в пользовательских переменных, вы можете добавить свое местоположение Python в любую из них. Выберите строку Path в списке переменных, затем нажмитеEdit.. Затем вам нужно добавить ваше местоположение Python к существующему значению, в приведенном ниже примере Python установлен в C: \ Python27 \. Папки C: \ Python27 \ и C: \ Python27 \ Scripts добавляются к существующему пути через ';' - ваш Python может находиться в другом месте. Обратите внимание: не должно быть пробелов вокруг ';', а пути не должны заключаться в кавычки. Вам нужно будет повторно открыть консоль Windows, чтобы изменить путь.

OrcaFlex не может найти DLL Python

При запуске модели, использующей внешнюю функцию Python или действие после вычисления, OrcaFlex необходимо найти DLL Python для запуска сценария. Если такая DLL не может быть найдена, появится это сообщение об ошибке. Это может вызвать недоумение, если на компьютере установлен Python. Возможные причины этой ошибки:

  • Убедитесь, что версия Python, указанная для действия External Function или Post-Calculation, соответствует версии, установленной на компьютере (т. Е. Если у вас установлен Python 2.7, то в OrcaFlex в модели должен быть выбранPython 2в форме данных переменной внешней функции или Форма данных Post Calculation Action).
  • Если у вас установлена ​​64-разрядная версия OrcaFlex (эта информация включена в информацию «О программе»в меню «Справка»в OrcaFlex), то OrcaFlex будет искать 64-разрядную DLL Python, однако у вас может быть установлена ​​только 32-разрядная версия Python. (или у вас 64-битный Python, но вы используете 32-битный OrcaFlex). Полная информация о версии Python отображается при запуске Python из консоли Windows. Чтобы избежать этой ошибки, либо запустите 32-битную версию OrcaFlex (OrcaFlex.exe в каталоге установки), либо установите 64-битную версию Python - вы можете установить несколько версий Python, если они находятся в разных каталогах. Та же проблема возникнет с 32-битным OrcaFlex и 64-битным Python.
  • Если установка Python, которую вы используете, не является одной из рекомендуемых нами версий (т. Е. Не с python.org), возможно, DLL Python не была установлена ​​в месте, ожидаемом OrcaFlex. Стандартный Python размещает DLL Python в следующих местах: Версия Python Расположение 32-битной DLL Расположение 64-битной DLL
    Python 2.7, 3.3, 3.4 C: \ Windows \ SysWOW64 \ C: \ Windows \ System32 \
    Python 3.5, 3.6, 3.7, 3.8 Каталог установки Python Каталог установки Python

Получение NumPy и других пакетов для стандартного Python

Мы рекомендуем использовать стандартную установку Python с http://www.python.org/download/, поскольку поддержка Python в OrcaFlex разработана для этого. К сожалению, этот дистрибутив не включает некоторые полезные сторонние модули, такие как NumPy и SciPy. Многие модули Python доступны в репозитории пакетов Python PyPi и могут быть загружены отсюда. Более простой альтернативой является использование установщика пакета pip, который включен в большинство выпусков Python. Это автоматизирует процесс загрузки и установки пакетов из репозитория. Например, чтобы установить модули yaml и numpy, вы запускаете pip из консоли Windows (для этого требуется, чтобы Python был на вашем пути к Windows):

>pip install pyyaml

>pip install numpy

В репозитории PyPi не всегда есть пакеты для последней версии Python или для всех 64-битных версий Python. Если вы не можете найти здесь нужный пакет для своей версии Python, попробуйте страницу Кристофа Голке, на которой, вероятно, будет нужная вам версия. Этот сайт предлагает загрузки в виде колесиков Python (.whl), который является форматом, используемым для пакетов Python менеджером пакетов pip. Чтобы использовать эти файлы, сначала загрузите соответствующее колесо, затем запустите pip из консоли Windows, как в этом примере (pip должен быть на вашем пути к Windows, он находится в каталоге \ Scripts в папке установки Python):

Если вы написали свой собственный модуль, который хотите импортировать, вы можете добавить его в библиотеку Python или включить его в тот же каталог, что и ваш скрипт Python. Однако, если сценарий запускается как внешняя функция OrcaFlex или действие после вычисления, вам необходимо указать Python, где найти модуль, см. Импорт моих модулей во внешнюю функцию ниже.

Использование нестандартных дистрибутивов Python

OrcaFlex разработан и протестирован на соответствие стандартному дистрибутиву Python с python.org, однако есть много других дистрибутивов Python, доступных с дополнительными модулями, такими как NumPy. Многие из этих дистрибутивов будут нормально работать с OrcaFlex при вызове API OrcaFlex из скрипта Python, но некоторые из них могут выйти из строя при вызове из OrcaFlex внешней функцией или действием после вычисления. Ниже мы опишем некоторые общие проблемы.

Нестандартная версия Python не устанавливает те же значения реестра, что и стандартная версия, поэтому установка Python может не быть обнаружена при запуске сценария InstallPythonInterface.bat. В OrcaFlex есть инструментинформацииоPython, в котором перечислены обнаруженные установки Python на вашем компьютере. Он находится в форме «О программе»в OrcaFlex в пункте меню «Справка»:

Если вашего Python нет в списке, вам нужно будет установить его вручную:

  • Вы можете скопировать файлы модулей OrcFxAPI.py и OrcFxAPIConfig.py в библиотеку Python в \ Lib \ site-packages \
  • В качестве альтернативы вы можете использовать pip для установки из PyPi: pip install OrcFxAPI

DLL Python может находиться не в том месте, которое ожидает OrcaFlex при попытке загрузить и запустить ее. См. Выше Невозможно найти DLL Python.

Некоторые нестандартные дистрибутивы Python фактически изменяют или перекомпилируют DLL Python таким образом, что OrcaFlex не может ее использовать, и вы получите ошибку DLL при попытке запустить модель с помощью внешней функции или действия после вычисления. В этом случае вам нужно будет установить альтернативный дистрибутив Python.

Импорт моих модулей во внешнюю функцию

Если у вас есть модуль Python, который вы хотите импортировать в свой скрипт внешней функции, но этого модуля нет в библиотеке Python, то простого включения этого модуля в тот же каталог, что и ваш скрипт Python, недостаточно для Python, чтобы найти его. Обычно Python проверяет текущий рабочий каталог и каталог сценария на наличие модулей, но при запуске в контексте внешней функции, запускаемой OrcaFlex, эти местоположения не устанавливаются в расположение сценария внешней функции. Чтобы импортировать другой модуль в каталог вашего скрипта, вам необходимо добавить его местоположение в путь Python во время выполнения вашего скрипта (и перед попыткой его импорта). Следующий код делает это и должен предшествовать вашему оператору импорта:

sys.path.append ('расположение вашего скрипта')

При вызове вашей внешней функции OrcaFlex передает каталог модели в параметре info.ModelDirectory.

Виртуальные среды

OrcaFlex знает о виртуальных средах, как о virtualenv, так и о более современных venv. Это очень похожие инструменты, но если venv доступен, мы, вероятно, порекомендуем его, в основном потому, что он встроен в стандартную библиотеку Python (начиная с 3.3), но также из-за различных преимуществ, обсуждаемых в PEP 405.

Виртуальные среды предоставляют средства для изоляции локальных установок пакетов Python. В частности, это позволяет вам разделять зависимости пакетов для разных проектов. Например, возможно, для проекта A требуется версия 1 библиотеки C, а для проекта B требуется версия 2 библиотеки C. Виртуальные среды Python позволяют вам иметь одну глобальную установку Python, но отдельные виртуальные среды, содержащие локальные зависимости для каждого проекта.

Когда OrcaFlex пытается загрузить Python DLL, он сначала проверяет, определена ли переменная среды VIRTUAL_ENV. Он использует это, чтобы определить, пытаться ли использовать виртуальную среду, и если да, то где эта среда расположена. Когда вы активируете среду venv или virtualenv, определяется переменная среды VIRTUAL_ENV, поэтому достаточно активировать среду в командной строке, а затем запустить OrcaFlex, который унаследует переменные среды этой командной строки.

Поскольку виртуальная среда изолирует исполняемый файл, а также пакеты, эта возможность позволяет принудительно использовать определенную версию Python. При стандартной работе OrcaFlex использует последнюю версию Python 2 или Python 3, которую он может найти установленной, как описано выше. Однако, если вы используете виртуальную среду, вы также выбираете конкретную исполняемую версию. Если вы работаете над проектами, в которых используется сочетание версий Python, использование виртуальных сред позволяет вам контролировать, какая версия Python загружается с помощью OrcaFlex.