将 hylang 与 python 多处理结合使用的示例
Example of using hylang with python multiprocessing
我正在寻找使用 python 多处理(即 process-pool/threadpool、作业队列等)和 hylang 的示例。
multiprocessing
文档中的第一个示例可以直译为 Hy,如下所示:
(import multiprocessing [Pool])
(defn f [x]
(* x x))
(when (= __name__ "__main__")
(with [p (Pool 5)]
(print (.map p f [1 2 3]))))
请注意,直接翻译在 macOS 上会遇到问题(官方不支持,但大多数情况下仍然有效):Hy 将 sys.executable
设置为 Hy 解释器,而 multiprocessing
依赖于它启动新流程的价值。您可以通过调用 (multiprocessing.set_executable hy.sys_executable)
解决该特定问题,但随后它将无法解析包含 Hy 代码本身的文件,由于某种原因它会在子进程中再次解析。因此,在 Mac.
上原生使用 Hy 运行 的多处理似乎没有好的解决方案
我想这就是我们 Docker 的原因。
我正在寻找使用 python 多处理(即 process-pool/threadpool、作业队列等)和 hylang 的示例。
multiprocessing
文档中的第一个示例可以直译为 Hy,如下所示:
(import multiprocessing [Pool])
(defn f [x]
(* x x))
(when (= __name__ "__main__")
(with [p (Pool 5)]
(print (.map p f [1 2 3]))))
请注意,直接翻译在 macOS 上会遇到问题(官方不支持,但大多数情况下仍然有效):Hy 将 sys.executable
设置为 Hy 解释器,而 multiprocessing
依赖于它启动新流程的价值。您可以通过调用 (multiprocessing.set_executable hy.sys_executable)
解决该特定问题,但随后它将无法解析包含 Hy 代码本身的文件,由于某种原因它会在子进程中再次解析。因此,在 Mac.
我想这就是我们 Docker 的原因。