update run notebook python ipython julia-lang

run - La mejor manera de ejecutar el código Julia en un cuaderno IPython(o el código Python en un cuaderno IJulia)



notebook python jupyter (5)

Ejecuta a Julia dentro de un cuaderno de IPython


Cortar

Para ejecutar fragmentos de Julia (u otro idioma) dentro de un cuaderno IPython, simplemente agrego la cadena ''julia'' a la lista default en el método _script_magics_default de la clase ScriptMagics en:

  • /usr/lib/python3.4/site-packages/IPython/core/magics/script.py o
  • /usr/lib/python2.7/site-packages/IPython/core/magics/script.py .

Ejemplo:

# like this: defaults = [ ''sh'', ''bash'', ''perl'', ''ruby'', ''python'', ''python2'', ''python3'', ''pypy'', ''julia'', # add your own magic ]

Julia magica (bidireccional)

Para usar %load_ext julia.magic , necesitarías ejecutar setup.py aquí:

Actualización (09/04/2014) : el archivo setup.py se ha movido a pyjulia.jl:

Que obtienes cuando Pkg.add("IJulia") clona el repositorio en tu sistema de archivos:

cd ~/.julia/v0.3/IJulia/python/ sudo python2 setup.py install

Actualmente esto solo funciona para mí en Python2 . Python3 se queja de:

ImportError: No module named ''core''

Cuando intento cargar la extensión, pero se instala sin quejas.

Después de instalarlo, también puedes hacer esto desde Python2:

from julia import Julia j = Julia() arr = j.run(''[1:10]'') type(arr) # numpy.ndarray

Ejecutando un script desde su shell del sistema

Use la sintaxis del modo shell en una celda de notebook:

!julia my_script.jl


Ejecutar Python dentro del cuaderno IJulia


Usando PyCall

Realmente no está ejecutando el código de Python en el contexto que desea, pero también puede usar las bibliotecas de Python desde dentro de Julia:

using PyCall @pyimport math println(math.pi)

Ejecutando un script desde su shell del sistema

Use la sintaxis del modo shell en una celda de notebook:

;python my_script.py

Mi objetivo es ejecutar solo unas pocas líneas de Julia en un cuaderno IPython donde la mayoría del código será Python para algunos experimentos ...

He encontrado un buen ejemplo de cuaderno aquí:

http://nbviewer.ipython.org/github/JuliaLang/IJulia.jl/blob/master/python/doc/JuliaMagic.ipynb

Y ahora me pregunto cómo instalaría la extensión de IPython para Julia (estoy utilizando principalmente IPython 2.1) para poder cargarla a través de

%load_ext julia.magic

También soy muy nuevo en julia y me pregunto si hay un beneficio en el rendimiento de "mezclar numpy y julia" como se muestra en este cuaderno (sobre numpy de Python o código de Julia regular)

Cuando entiendo el concepto correctamente, usaría los cuadernos IJulia (que configuré correctamente) si solo me interesa ejecutar el código Julia.

Instalé IJulia, y también puedo ejecutar notebooks IJulia, pero en realidad solo quería tener una pequeña porción de código Julia en mi notebook, el resto debería ser Python / Cython. Desafortunadamente, leí que las funciones mágicas aún no están totalmente soportadas: "Una diferencia de IPython es que el kernel IJulia actualmente no admite" magics ", que son comandos especiales con el prefijo% o %% para ejecutar código en un idioma diferente"

¿Hay alguna manera de ejecutar el código Python en las libretas IJulia?


Otra opción es usar Beaker . Tienen un cuaderno tutorial disponible que mezcla R y Python; usar a Julia es igual de fácil.


Para completar esta buena respuesta , sin ningún truco y sin modificar ningún archivo del sistema, una solución simple es con el %%script magic :

In [1]: %%script julia ...: println("Hi from a Julia sub-process") ...: a = [1:10]

Tenga cuidado de que la celda se ejecutó en un subproceso, por lo que el resto de la sesión de IPython no podrá acceder a lo que se hizo en ella:

In [2]: print("Hi from the main IPython process") ...: print(a) # <-- not available from the Julia code, will fail ! --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-2-c5a4f3535135> in <module>() ----> 1 print(a) NameError: name ''a'' is not defined


Si desea ejecutar un cuaderno completo de solo julia (o donde llama a otros idiomas solo desde julia), entonces hay una solución más limpia. Primero, lanza julia y hazlo.

Pkg.add("IJulia")

para obtener el paquete IJulia. Entonces tú puedes

ipython notebook --profile julia

y su cuaderno tendrá a julia como idioma nativo (predeterminado).

h / t a David Sanders y sus excelentes tutoriales de julia que están escritos en cuadernos de IPython; video aqui