繁体   English   中英

Clojure创建python运行时并执行任务

[英]Clojure create python runtime and execute task

我想用Clojure编写一个程序,该程序具有Python运行时并接受Python函数代码,并通过套接字从某些客户端将此函数的参数列表列出,然后将其添加到运行时,并使用参数调用它并返回结果给客户。

我想知道如何:

  1. 在Clojure中创建Python运行时
  2. 在此运行时中发送代码并在Clojure中获得结果

您可以为此使用clojure.java.shell

(ns tst.clj.core
  (:require [clojure.java.shell :as shell]  ))
(t/refer-tupelo)
(t/print-versions)

(println (shell/sh "python" "-c" "print (2 + 3)" ))

;=> {:exit 0, :out "5\n", :err ""}

更新资料

如果您担心启动Python的开销,那么似乎只有6毫秒:

(time
  (let [sum-vec (for [i (range 100)]
                  (Integer/parseInt (str/trim (:out (shell/sh "python" "-c" (format "print (%d + 3)" i))))))
        cumsum  (reduce + sum-vec)
        ]
    (println :cumsum cumsum)))

;=> :cumsum 5250
;=> "Elapsed time: 638.612278 msecs"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM