问题
I have a found a Julia function that nicely does the job I need. How can I quickly integrate it to be able to call it from Python?
Suppose the function is
f(x,y) = 2x.+y
What is the best and most elegent way to use it from Python?
回答1:
Assuming your Python and Julia are installed you need to take the following steps.
Run Julia and install
PyCallusing Pkg pkg"add PyCall"Put your code into a Julia package
using Pkg Pkg.generate("MyPackage")In the folder
srcyou will findMyPackage.jl, edit it to look like this:module MyPackage f(x,y) = 2x.+y export f endInstall pyjulia
python -m pip install julia(On Linux systems you might want to use
python3instead ofpythoncommand)For this step note that while an external Python can be used with Julia. However, for a convenience it might be worth to consider using a Python that got installed together with Julia as
PyCall. In that case for installation use a command such this one:%HOMEPATH%\.julia\conda\3\python -m pip install juliaor on Linux
~/.julia/conda/3/python -m pip install juliaNote that if you have
JULIA_DEPOT_PATHvariable defined you can replace%HOMEPATH%\.juliaor~/.julia/with its value.Run the appropiate Python and tell it to configure the Python-Julia integration:
import julia julia.install()Now you are ready to call your Julia code:
>>> 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]
来源:https://stackoverflow.com/questions/64241264/i-have-a-high-performant-function-written-in-julia-how-can-i-use-it-from-python