pyjulia - gher-uliege/Documentation GitHub Wiki

Using pyjulia with Julia 0.6

pyjulia allows to call Julia code from Python. First check that the correction version of Julia is in your PATH:

which julia

Install PyCall

julia -e 'Pkg.add("PyCall")'

Install pyjulia

git clone https://github.com/JuliaPy/pyjulia
cd pyjulia/
python2 setup.py clean
python2 setup.py install --prefix $HOME/.local/

Simple check:

~/.julia/v0.6/Conda/deps/usr/bin/python2.7 -c "import julia; j = julia.Julia(); j.versioninfo(); print j.sind(90)"

This command should return the following:

WARNING: redefining constant JULIA_HOME
Julia Version: ...
...
1.0

Troubleshooting

Dynamic module not initialized properly

Just issuing

/usr/bin/python -c "import julia; j = julia.Julia(); j.versioninfo(); print j.sind(90)"

fails with

InitError(:PyCall, PyError (ccall(@pysym(:PyImport_ImportModule), PyPtr, (Cstring,), name)) <type 'exceptions.SystemError'>
SystemError('dynamic module not initialized properly',)
...

The work-around is to use the python interpreter from miniconda.

python -m unittest discover

C++ run-time library error

If you see the following error:

OSError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/abarth/opt/julia-3c9d75391c/bin/../lib/libjulia.so.0.5)

Define the variable LD_PRELOAD before starting python or (ipython)

export LD_PRELOAD="$HOME/opt/julia-xyz/lib/julia/libstdc++.so.6"

You should adapt the path in the previous command to match the installation location of Julia.

Python crash

On some systems, python crashes on j = julia.Julia() (https://github.com/JuliaPy/pyjulia/issues/66). Rebuilding PyCall after installing pyjulia seems to solve this issue. In Julia, run the following command:

Pkg.build("PyCall")

dynamic module not initialized properly

Maybe the version of julia has changed since pyjulia was installed the last time. Recompile pyjulia with the correction version of julia.

  File "/home/abarth/.julia/v0.6/Conda/deps/usr/lib/python2.7/re.py", line 108, in <module>
    import _locale
SystemError: dynamic module not initialized properly
⚠️ **GitHub.com Fallback** ⚠️