Мне нужно интегрировать два файла, один в python, другой в julia. Точнее, мне нужно вызвать функцию julia snapshot_sphere(b,h,data,m,r,d) из файла python. Более того, мне нужно указать параметры через командную строку. У меня были трудности с использованием PyJulia. На данный момент сохраняется сообщение об ошибке:
ModuleNotFoundError: Нет модуля с именем '_ctypes'
Я обнаружил некоторые зависимости, связанные с libffi-dev
. Установка ничего не изменила. Что мне делать, чтобы вызвать функцию julia из файла python?
Вот код файла python:
import argparse
from julia import Main
from PIL import Image, ImageShow
parser = argparse.ArgumentParser(description="Projection of the picture")
parser.add_argument(
"-f",
"--filename",
type=str,
action="store",
dest="fname",
help="Name of the picture"
)
parser.add_argument(
"-d",
"--density",
type=int,
action="store",
dest="density",
help="Number samples per Pixel"
)
parser.add_argument(
"-r",
"--radius",
type=float,
action="store",
dest="radius",
help="Radius of the sphere"
)
parser.add_argument(
"-x",
type=float,
action="store",
dest="x",
help="X coordinate of the center"
)
parser.add_argument(
"-y",
type=float,
action="store",
dest="y",
help="Y coordinate of the center"
)
parser.add_argument(
"-z",
type=float,
action="store",
dest="z",
help="Z coordinate of the center"
)
args = parser.parse_args()
print(args)
m = (args.x, args.y, args.z)
print(m)
im = Image.open(args.fname)
b, h = im.size
data = list(im.getdata())
Main.b = b
Main.h = h
Main.m = m
Main.r = args.radius
Main.d = args.density
Main.data = data
Main.include("projekt1.jl")
result = Main.eval("snapshot_sphere(b,h,data,m,r,d)")
Возможно, эта статья будет чем-то полезна.
Я советую поместить вашу функцию
snapshot_sphere
в модуль и загрузить модуль из Python, а затем вызвать функцию. Вот подробное руководство coderhelper.com/questions/64241264/… Если у вас есть другие требования, дайте мне знать.@ Пшемыслав Шуфель. Большое спасибо. За исключением вызова функции
snapshot_sphere
, мне нужно будет передать окончательный список значений из среды julia обратно в среду python. Затем из среды python мне нужно сгенерировать вывод, который представляет собой сферу с проецируемым на нее изображением. Таким образом, он начинается и заканчивается на python, в julia завершаются только промежуточные шаги. Таким образом, сложно плавно перейти из одной среды в другую. Как вы думаете, это возможно?@Пшемыслав Шуфель. Когда я делаю это, я получаю сообщение об ошибке:
from julia import MyPackage
. Это выдает ошибку:Traceback (most recent call last): File "c:/Users/bhaye/MyPackage/src/call_julia.py", line 13, in from julia import MyPackage File "C:\Python37\lib\site-packages\julia\core.py", line 260, in load_module raise ImportError("{} not found".format(juliapath)) ImportError: MyPackage not found
. Я безуспешно пытался переместить MyPackage в несколько разных каталогов.Что произошло, когда вы запустили `Pkg.activate(".\\MyPackage")`