|
1 | | -# JuliaPy.github.io |
| 1 | +The [JuliaPy](https://github.com/JuliaPy) organisation on GitHub is the home for Julia-Python interoperability, providing packages to bridge the gap between these two excellent and complementary languages. |
| 2 | + |
| 3 | +Within this, there are two ecosystems of packages, one centered around **PythonCall.jl** and the other around **PyCall.jl**. While PythonCall is newer and more actively maintained, both are popular and power many wrapper packages outside of this org. |
| 4 | + |
| 5 | +## The PythonCall ecosystem |
| 6 | + |
| 7 | +* **PythonCall.jl** ([repo](https://github.com/JuliaPy/PythonCall.jl)): |
| 8 | + A Julia package that lets you call Python code. Installs any Python dependencies |
| 9 | + automatically using CondaPkg.jl. Comes "batteries included" with support for numpy |
| 10 | + arrays, tabular data, multimedia display and more. |
| 11 | + |
| 12 | +* **pyjuliacall** ([repo](https://github.com/JuliaPy/PythonCall.jl)): |
| 13 | + A Python package that lets you call Julia code - the Python side of PythonCall.jl. In |
| 14 | + fact this package is mostly implemented in Julia as part of PythonCall, they are two |
| 15 | + sides of the same codebase. This makes interoperation more symmetric and predictable |
| 16 | + from either side. Installs any Julia dependencies automatically using pyjuliapkg. |
| 17 | + |
| 18 | +* **CondaPkg.jl** ([repo](https://github.com/JuliaPy/CondaPkg.jl)): |
| 19 | + A Conda package manager for Julia, like Pkg but for Conda. You declare your Julia |
| 20 | + project's Conda/PyPI dependencies in a CondaPkg.toml file (anaologous to Project.toml) |
| 21 | + and it automatically creates a Conda environment specific to your project with these in. |
| 22 | + Used by default by PythonCall for package management. |
| 23 | + |
| 24 | +* **pyjuliapkg** ([repo](https://github.com/JuliaPy/pyjuliapkg)): |
| 25 | + The Python analogue of CondaPkg.jl, namely a Python package which reads your Julia |
| 26 | + dependencies from a juliapkg.json file and automatically installs Julia and any |
| 27 | + required packages into a Julia project specific to your Python/Conda environment. |
| 28 | + Used by default by pyjuliacall. |
| 29 | + |
| 30 | +* **PythonPlot.jl** ([repo](https://github.com/JuliaPy/PythonPlot.jl)): |
| 31 | + A Julia plotting package wrapping matplotlib. A port of PyPlot.jl to use PythonCall.jl. |
| 32 | + |
| 33 | +* **MicroMamba.jl** ([repo](https://github.com/JuliaPy/MicroMamba.jl)): |
| 34 | + Makes the micromamba implementation of Conda available. Mostly an implementation |
| 35 | + detail of CondaPkg.jl. |
| 36 | + |
| 37 | +* Plus many more [external packages...](https://juliahub.com/ui/Packages/General/PythonCall#dependents) |
| 38 | + |
| 39 | +## The PyCall ecosystem |
| 40 | + |
| 41 | +* **PyCall.jl** ([repo](https://github.com/JuliaPy/PyCall.jl)): |
| 42 | + Another Julia package that lets you call Python code. Older than PythonCall but still |
| 43 | + popular and maintained. |
| 44 | + |
| 45 | +* **pyjulia** ([repo](https://github.com/JuliaPy/pyjulia)): |
| 46 | + Another Python package that lets you call Julia code. Experimental and deprecated in |
| 47 | + favour of pyjuliacall. |
| 48 | + |
| 49 | +* **Conda.jl** ([repo](https://github.com/JuliaPy/Conda.jl)): |
| 50 | + Makes Conda available and lets you install packages manually into a central Julia-wide |
| 51 | + Conda environment. Used by PyCall.jl to automatically install Python and packages. |
| 52 | + |
| 53 | +* **SymPy.jl** ([repo](https://github.com/JuliaPy/SymPy.jl)): |
| 54 | + A Julia wrapper of the Python SymPy library. |
| 55 | + |
| 56 | +* **PyPlot.jl** ([repo](https://github.com/JuliaPy/PyPlot.jl)): |
| 57 | + A Julia plotting package wrapping matplotlib. |
| 58 | + |
| 59 | +* **Pandas.jl** ([repo](https://github.com/JuliaPy/Pandas.jl)): |
| 60 | + A Julia wrapper of the Python Pandas library, making DataFrames available in Julia. |
| 61 | + |
| 62 | +* **Seaborn.jl** ([repo](https://github.com/JuliaPy/Seaborn.jl)): |
| 63 | + A Julia plotting package wrapping Seaborn. |
| 64 | + |
| 65 | +* **PyCallJLD.jl** ([repo](https://github.com/JuliaPy/PyCallJLD.jl)): |
| 66 | + An integration allowing Python objects to be saved using JLD.jl. |
| 67 | + |
| 68 | +* **PyInteract.jl** ([repo](https://github.com/JuliaPy/PyInteract.jl)): |
| 69 | + Provides Julia support for IPython-based interactive widgets. |
| 70 | + |
| 71 | +* Plus many more [external packages...](https://juliahub.com/ui/Packages/General/PyCall#dependents) |
| 72 | + |
| 73 | +## Join the discussion! |
| 74 | + |
| 75 | +* You can create issues or discussions on any of our GitHub repos. |
| 76 | +* The [Julia Discourse forum](https://discourse.julialang.org/) is a good place to ask |
| 77 | + questions. Using the 'PythonCall' or 'PyCall' tags helps. |
| 78 | +* The [Julia Slack](https://julialang.org/slack/) is good for quick questions. We'd |
| 79 | + recommend [#expytriates](https://julialang.slack.com/archives/CQG6KQMR7) but many just |
| 80 | + use [#helpdesk](https://julialang.slack.com/archives/C6A044SQH). |
0 commit comments