Encontré una función de Julia que hace muy bien el trabajo que necesito. ¿Cómo puedo integrarlo rápidamente para poder llamarlo desde Python?
Supongamos que la función es
f(x,y) = 2x.+y¿Cuál es la mejor y más elegante forma de usarlo desde Python?
Suponiendo que Python y Julia estén instalados, debe seguir los siguientes pasos.
Ejecute Julia e instale PyCall
using Pkg pkg"add PyCall"Pon tu código en un paquete de Julia
using Pkg Pkg.generate("MyPackage") En la carpeta src encontrará MyPackage.jl , edítelo para que se vea así:
module MyPackage f(x,y) = 2x.+y export f endinstalar pyjulia
python -m pip install julia (En los sistemas Linux, es posible que desee usar python3 en lugar del comando python )
Para este paso, tenga en cuenta que si bien se puede usar un Python externo con Julia. Sin embargo, para mayor comodidad, podría valer la pena considerar usar un Python que se instaló junto con Julia como PyCall . En ese caso, para la instalación, use un comando como este:
%HOMEPATH%\.julia\conda\3\python -m pip install juliao en Linux
~/.julia/conda/3/python -m pip install julia Tenga en cuenta que si tiene definida la variable JULIA_DEPOT_PATH , puede reemplazar %HOMEPATH%\.julia o ~/.julia/ con su valor.
Ejecute el Python apropiado y dígale que configure la integración Python-Julia:
import julia julia.install()Ahora estás listo para llamar a tu código de Julia:
>>> from julia import Pkg >>> Pkg.activate(".\\MyPackage") #use the correct path Activating environment at `MyPackage\Project.toml` >>> from julia import MyPackage >>> MyPackage.f([1,2],5) [7,9]Vale la pena señalar que el enfoque propuesto en esta respuesta tiene varias ventajas sobre un archivo Julia independiente que sería posible, aunque menos recomendable. Las ventajas incluyen: