Я хотел бы написать чувствительное к производительности приложение на Python, поэтому выполнение его под PyPy является естественным выбором. Однако значительная часть моего кода зависит от numpy, scipy и scikit-learn. Можно ли встроить экземпляр CPython в работающую программу PyPy для вызова кода, ориентированного на массив? Если нет, то какой самый простой способ заставить PyPy и CPython общаться друг с другом?
Могу ли я встроить CPython внутрь PyPy?
Ответы (2)
Нет, вы не можете встроить CPython внутрь PyPy, насколько мне известно. Однако вы можете использовать распределенные/параллельные системы выполнения, чтобы заставить PyPy взаимодействовать с CPython. И execnet, и Pyro упомяните этот конкретный PyPy <-> CPython
вариант использования. Возможно, подойдут и другие пакеты со страницы Parallel Processing Python Wiki.
Кроме того, как упоминает Делнан, сейчас идет текущее обсуждение План разработчиков PyPy по реализации Numpy в PyPy (который не включает поддержку scipy и scikit.learn уже).
На данный момент лучше всего использовать Cython, а не PyPy. Он имеет производительность уровня C, если вы добавите объявления типов, и отличную интеграцию с numpy и др.
В настоящее время люди работают над тем, чтобы он хорошо работал с PyPy, но до этого еще далеко.