Я изучаю Cython и не смог найти прямого ответа на этот вопрос. Также, пожалуйста, потерпите меня, так как мое понимание C ограничено на данный момент. Насколько я понимаю, с помощью команды cythonize файлы .pyx конвертируются в C и компилируются в специфичные для платформы библиотеки (.so/.pxd). Мои вопросы:
Если файлы .pyx полностью преобразованы в C, означает ли это, что эти сгенерированные расширения больше не зависят от среды выполнения python после компиляции?
Предполагая ту же архитектуру хоста, могут ли эти сгенерированные расширения быть загружены на другие языки, например. через Java JNI? Если да, то есть ли какие-нибудь примеры приветствия по этому поводу?
Расширения Cython полностью написаны на C, но они активно используют Python C API. Это означает, что их нельзя запускать независимо от libpython (и обычно от стандартной библиотеки Python). Однако можно загрузить libpython на другие языки, а затем использовать расширение Cython. Также имейте в виду, что все, что вы импортируете в Cython, не компилируется, но должно быть доступно для импорта.
Я не планирую отвечать на этот вопрос полностью, но и ImageJ (на Java), и Julia поддерживают уровни совместимости Python, и там будут работать расширения Cython. Вам гораздо лучше искать «уровень взаимодействия Python-Java», чем пытаться создать свой собственный способ использования Cython.