--- id: juliacall version: "0.9.35" license: unclear license_treatment: permissive maintenance: active --- # juliacall — Julia and Python in seamless harmony License: permissive · Maintenance: active · Downloads: 199.4K/mo ## What it is and what it does JuliaCall is a Python module that enables calling Julia code directly from Python, complementing PythonCall which does the reverse. It provides a symmetric interface so that Python code looks like Python and Julia code looks like Julia, with automatic conversions between the two languages' types and data structures. The package handles numeric array conversion without copying—you can modify Python arrays like numpy.ndarray from Julia or Julia arrays from Python, with changes reflected in the original objects. It wraps Python sequences, dictionaries, dataframes, and IO streams as their Julia equivalents, and vice versa. It requires Julia 1.10 or later and Python 3.10 or later, and manages Python dependencies per Julia project using a separate Conda environment. Use it for: - Train machine learning models in Julia (e.g. Flux) using data prepared in Python (NumPy) and visualize results with Matplotlib. - Perform numerical computations in Julia while keeping data processing and visualization workflows in Python. - Access Julia's scientific libraries (statistics, optimization, differential equations) from a Python notebook without rewriting code. - Share mutable arrays between Julia and Python for in-place modifications without copying overhead. - Combine Julia's performance for compute-heavy tasks with Python's ecosystem for data manipulation and plotting. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Call Julia code from Python and Python code from Julia with automatic type conversion, array wrapping, and a symmetric interface between the two languages. Yes, if you need to call Julia from Python. The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive MIT license. It is well-suited for workflows that leverage Julia's computational strengths while staying in a Python environment. Not necessary if you work exclusively in one language. ## Install pip install juliacall uv add juliacall poetry add juliacall ## Installing juliacall Before you install: Low friction: pure Python wheel with a single runtime dependency (juliapkg). Actively maintained with recent releases. License in practice: MIT license permits commercial and private use with minimal restrictions. Quickstart: pip install juliacall from juliacall import Main as jl # Call Julia code from Python result = jl.sqrt(2.0) Requires Julia 1.10 or later and Python 3.10 or later to be installed on the system. Verify before relying: - Whether the package handles all edge cases in bidirectional array conversion without data loss or unexpected behavior. - Performance characteristics of non-copying array conversions in practice for large datasets. - Stability and completeness of the symmetric interface across different Julia and Python versions. ## Package facts - License: not declared (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 199.4K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags call julia from python, python julia interop, julia python bridge, cross-language function calls, julia numpy integration, python julia data exchange, language-interop, scientific-computing [View on SkillFed](https://skillfed.io/packages/juliacall) · [View on PyPI](https://pypi.org/project/juliacall/)