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
]
- Ejemplo de cuaderno (usando Python3)
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
Un método limpio y agradable se describe en este cuaderno: https://github.com/binder-examples/julia-python/blob/master/python-and-julia.ipynb .
Usa una gran cantidad de magia IPython ( %julia <julia code>
en línea en Python y %%julia
), pero el resultado es bastante impresionante: los dos procesos de Python y Julia pueden usar las mismas variables y memoria.