Experimenting with developing a better interface to julia that works with Python 2 & 3.
to run the tests, execute from the toplevel directory
python -m unittest discover
Note You need to explicitly add julia to your PATH
, an alias will not work.
pyjulia
is tested against Python versions 2.7 and 3.5. Older versions of Python (than 2.7) are not supported.
You will need to install PyCall in your existing Julia installation
Pkg.add("PyCall")
Your python installation must be able to call Julia. If your installer
does not add the Julia binary directory to your PATH
, you will have to
add it.
Then finally you have to install pyjulia. You may clone it directly to your home directory.
git clone https://github.com/JuliaPy/pyjulia
then inside the pyjulia directory you need to run the python setup file
sudo python setup.py install
pyjulia
is known to work with PyCall.jl
โฅ v0.7.2
.
If you run into problems using pyjulia
, first check the version of PyCall.jl
you have installed by running Pkg.installed("PyCall")
.
To call Julia functions from python, first import the library
import julia
then create a Julia object that makes a bridge to the Julia interpreter
j = julia.Julia()
You can then call Julia functions from python, e.g.
j.sind(90)
PyJulia loads the libjulia
library and executes the statements therein.
To convert the variables, the PyCall
package is used.
Not all valid Julia identifiers are valid Python identifiers. Unicode identifiers are invalid in Python 2.7 and so pyjulia
cannot call or access Julia methods/variables with names that are not ASCII only. Additionally, it is a common idiom in Julia to append a !
character to methods which mutate their arguments. These method names are invalid Python identifers. pyjulia
renames these methods by subsituting !
with _b
. For example, the Julia method sum!
can be called in pyjulia
using sum_b(...)
.