PythonCall.jl (JuliaPy/PythonCall.jl)
Searching Database…
1.1K ·GitHub
Что это такое?
PythonCall.jl (вместе со своим питоновским аналогом JuliaCall) позволяет вызывать код Python из Julia и код Julia из Python через симметричный интерфейс, преобразуя объекты между двумя языками.
Это библиотека Julia, библиотека Python или и то и другое?
И то и другое: PythonCall — это пакет для Julia, который вы устанавливаете, чтобы вызывать Python, а JuliaCall — сопутствующий модуль Python для вызова Julia из Python.
Как добавить его в свой проект?
Прочитайте официальную документацию, чтобы начать; встроенной команды установки в README нет.
Нужно ли устанавливать Python отдельно, или он сам этим занимается?
PythonCall через CondaPkg устанавливает собственные зависимости Python в отдельное окружение Conda для каждого проекта Julia, так что каждый проект автоматически получает изолированные зависимости Python.
Чем это отличается от более старого пакета PyCall?
В отличие от PyCall, PythonCall поддерживает более широкий набор расширяемых преобразований, по умолчанию никогда не копирует изменяемые объекты (он оборачивает их, поэтому правки затрагивают оригинал, а преобразование выполняется быстрее) и оставляет результаты объектами Python вместо автоматического преобразования в Julia.
Какие сочетания ОС и версий поддерживаются?
Протестировано на Windows, MacOS и Linux; требуются 64-битные системы, Julia 1.10+ и Python 3.10+.
Можно ли преобразовывать массивы NumPy без копирования данных?
Да, числовые массивы вроде bytes, array.array и numpy.ndarray можно преобразовывать между Julia и Python без копирования, так что любой из языков может изменять лежащие в их основе данные на месте.
Поддерживает ли он Pandas DataFrames?
Да, он предоставляет вспомогательные обёртки, интерпретирующие датафреймы Python как их аналоги в Julia и наоборот, например pytable(df), превращающий Julia DataFrame в Python Pandas DataFrame.
Как выглядят сообщения об ошибках, когда что-то ломается на границе языков?
Проект рекламирует «красивые стек-трейсы», охватывающие границу Julia/Python, что делает межъязыковую отладку нагляднее.
What are similar projects?
codex-claude-academic-skills, scikit-learn, dask, cupy, seaborn, cython, sktime, ta-lib-python
Which topics is it in?
ffi, interoperability, scientific-computing, pandas, numpy, data-science, machine-learning, library, python, cross-platform, mit, windows


