The JuliaPy organisation on GitHub is the home for Julia-Python interoperability, providing packages to bridge the gap between these two excellent and complementary languages.
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.
The core packages of the PythonCall ecosystem are:
-
PythonCall.jl (repo) itself, which lets you call Python code. Comes "batteries included" with support for numpy arrays, tabular data, multimedia display and more.
-
pyjuliacall (repo) is the Python side of PythonCall.jl, letting you call into Julia from Python.
-
CondaPkg.jl (repo) is a Conda package manager for Julia, like Pkg but for Conda. Used by PythonCall for automatic package management.
-
pyjuliapkg (repo) is the Python analogue of CondaPkg.jl, used by pyjuliacall for automatic package installation.
-
Plus wrapper package PythonPlot.jl (repo) and many more external packages...
The core packages of the PyCall ecosystem are:
-
PyCall.jl (repo) is another Julia package that lets you call Python code. Older than PythonCall but still popular and maintained.
-
pyjulia (repo) is another Python package that lets you call Julia code. Experimental and deprecated in favour of pyjuliacall.
-
Conda.jl (repo) makes Conda available in Julia. Used by PyCall.jl to automatically install Python and packages.
-
Plus wrapper packages SymPy.jl (repo), PyPlot.jl (repo), Pandas.jl (repo), Seaborn.jl (repo), PyCallJLD.jl (repo), PyInteract.jl (repo) and many more external packages...
Feel free to get in touch:
- You can create issues or discussions on any of our GitHub repos.
- The Julia Discourse forum is a good place to ask questions. Using the 'PythonCall' or 'PyCall' tags helps.
- The Julia Slack is good for quick questions. We'd recommend #expytriates but many just use #helpdesk.