Использование NumPy и Cpython с Jython

Я должен пользоваться коммерческой библиотекой Java и хотел бы сделать это из Python. Jython устойчив и хорошо с ним являющийся несколькими точечными выпусками позади. Однако я хотел бы использовать NumPy также, который, очевидно, не работает с Jython. Опции как CPype и Java числовые библиотеки непривлекательны. Первый чрезвычайно мертв. Последние являются главным образом незрелыми и испытывают недостаток в простоте использования и широком принятии NumPy. Мой вопрос: Как можно иметь Jython, и код Python взаимодействуют? Это было бы приемлемо, чтобы я назвал Jython от Cpython или наоборот.

14
задан gappy 22 June 2010 в 21:59
поделиться

2 ответа

Это иронично, учитывая, что Jython и Numeric (предок NumPy) были инициированы одним и тем же разработчиком (Джим Хугунин, который затем перешел также и инициировал IronPython, а теперь занимает должность старшего должность архитектора в Microsoft, работающего над поддержкой всех видов динамических языков для .NET и Silverlight), что нет действительно хорошего способа использовать numpy в Jython. Самым близким к этому, о котором я знаю, является проект "jnumerical" - (скудные) документы находятся на sourceforge , а обновленные исходники - на bitbucket .

«Числовой Python», то, что реализует jnumerical, не такой изящный и оптимизированный, как его numpy-потомок, но он имеет примерно те же функциональные возможности и разделяет многие концепции и философию, так что, возможно, вы найдете его полезным - стоит проверять, по крайней мере.

18
ответ дан 1 December 2019 в 08:51
поделиться

Рассмотрите возможность использования execnet, который позволяет объединить сильные стороны как Jython, так и CPython, включая текущий NumPy. Недостатком здесь является то, что вам придется оплачивать расходы на сериализацию/десериализацию объектов между двумя интерпретаторами в двух разных пространствах процессов. (Вы можете избежать сетевых накладных расходов, используя поддержку подпроцесса). Но такая комбинация может работать хорошо, учитывая, что вы рассматриваете JPype, который будет иметь аналогичные (и, вероятно, более высокие) накладные расходы. Просто убедитесь, что вы разделили работу соответствующим образом.

Разработчики Jython (и я один из них) рассматривают возможность поддержки NumPy в будущем, через поддержку C Extension API, но это очень предварительное планирование.

7
ответ дан 1 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

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