问题
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
PyCall
using Pkg pkg"add PyCall"
Put your code into a Julia package
using Pkg Pkg.generate("MyPackage")
In the folder
src
you will findMyPackage.jl
, edit it to look like this:module MyPackage f(x,y) = 2x.+y export f end
Install pyjulia
python -m pip install julia
(On Linux systems you might want to use
python3
instead ofpython
command)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 julia
or on Linux
~/.julia/conda/3/python -m pip install julia
Note that if you have
JULIA_DEPOT_PATH
variable defined you can replace%HOMEPATH%\.julia
or~/.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