我正在尝试使用Python和Elixir,我编写了以下功能代码(你可以在这里找到我正在建立的回购:https://github.com/arthurcolle/elixir_with_erlport)
vbar
我可以运行-$hbar
,然后输入Snake.py,我会得到这个输出:
[expr {-$hbar}]
好的,太棒了。
然后我尝试通过交换上面的两行来打印出当前版本的Python:
defmodule Snake do
use Application
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = [
# Define workers and child supervisors to be supervised
# worker(Snake.Worker, [arg1, arg2, arg3]),
]
opts = [strategy: :one_for_one, name: Snake.Supervisor]
Supervisor.start_link(children, opts)
end
def py do
{:ok, pp} = :python.start()
:python.call(pp, :__builtin__, :print, ["hey there"])
end
end
但是当我运行它时,它给了我这个arity错误
iex -S mix run
这对我没有任何意义,因为我的电话只有:erlport.call/4,最后有一个单独的列表(不是2,因为它说)。
答案 0 :(得分:2)
{:ok, pp} = :python.start_link()
:python.call(pp, :sys, String.to_atom("version.__str__"), [])