Как скомпилировать сценарии Python для использования в ФОРТРАНЕ?

Хотя я нашел много ответов и дискуссий об этом вопросе, я не могу найти решение конкретным к моей ситуации.Вот:

Мне записали основную программу в ФОРТРАНЕ. Мне дали ряд сценариев Python, которые очень полезны. Моя цель состоит в том, чтобы получить доступ к этим сценариям Python из моей основной программы ФОРТРАНА. В настоящее время я просто называю сценарии от ФОРТРАНА как такового:

НАЗОВИТЕ СИСТЕМУ ('Python pyexample.py')

Данные считаны из .dat файлов и записаны в .dat файлы. Это - то, как сценарии Python и основная программа ФОРТРАНА связываются друг с другом.

Я в настоящее время выполняю свой код моей локальной машины. Мне установили Python с numpy, scipy, и т.д.

Моя проблема: код должен работать на удаленном сервере. Для строго кода ФОРТРАНА я компилирую код локально и отправляю исполняемый файл на сервер, где он ожидает в очереди. Однако серверу не установили Python. Сервер используется в качестве станции перемалывания чисел между университетами и промышленностью. Установка Python наряду с необходимыми модулями на сервере не является опцией. Это означает, что моя “СИСТЕМА ВЫЗОВА ('Python pyexample.py')” стратегия больше не работает.

Решение?: Я нашел, что некоторая информация о нескольких вещах в потоке - это выполнимый скомпилировать Python в машинный код?

Shedskin, Psyco, Cython, Pypy, Cpython API

Эти “модули” (? Не уверенный, если это - то, что назвать их), кажется, компилируют сценарий Python в код C или C++. По-видимому, не все функции Python могут быть переведены в C. Также, некоторые из них, кажется, экспериментальны. Действительно ли возможно скомпилировать мои сценарии Python с моим кодом ФОРТРАНА? Там существует f2py, который преобразовывает код ФОРТРАНА в Python, но он не работает наоборот.

Любая справка значительно ценилась бы. Спасибо за Ваше время.

Vincent

PS: я использую python 2.6 на Ubuntu

7
задан Community 23 May 2017 в 11:48
поделиться

2 ответа

Так или иначе, вам необходимо установить среду выполнения Python на свой сервер, иначе будет невозможно выполнить байт-код Python. Игнасио находится на правильном пути, предлагая напрямую вызывать libpython, но из-за соглашений Фортрана о передаче параметров вам будет намного проще написать оболочку C для обработки интерфейса между Фортраном и API встраивания CPython.

К сожалению, вы делаете это непросто - намного проще написать программу Python, которая может вызывать подпрограммы Fortran, чем наоборот.

3
ответ дан 7 December 2019 в 12:16
поделиться

Вам не нужно ничего из этого. Что вы должны делать, так это использовать FFI FORTRAN для общения с libpython и использовать его API.

2
ответ дан 7 December 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: