我在ipyparallel引擎之间同步导入时遇到问题。我想并行运行随机模拟。为此我写了一个名为' gillespie'的函数。我有两个版本的函数,一个使用Python并在Cython中获得一些速度。两者都有效。
现在的问题是如何使编译的cython函数可用于所有引擎。文件' gillespie.c',' gillespie.so'和' gillespie.pyx'都在我目前的目录中以及我想要使用这些功能的笔记本。我想像这样导入它
import gillespie as gc
%px import gillespie as gc
但是这给了我:
Traceback (most recent call last)<ipython-input-50-801274ebf64a> in <module>()
----> 1 import gillespie as gc
ImportError: No module named gillespie
刚做
import gillespie as gc
工作正常,我可以使用已编译的函数。
使用%px magic将numpy或scipy导入引擎工作正常。
如何让我的导入可用于所有引擎?
感谢您的帮助! baumgast
答案 0 :(得分:2)
%px import gillespie
在引擎上执行import语句。要实现这一点,您需要确保gillespie.so
可用于这些引擎。您可以通过将其放置在site-packages或PYTHONPATH中来“安装”它,或者您可以依赖于笔记本中已经依赖的基于当前目录的加载,在这种情况下,您需要确保{ {1}}位于引擎的工作目录中。如果您使用的是单台计算机或共享文件系统,则可以使用以下命令完成此操作:
gillespie.so
或者如果文件系统未共享,则将gillespie.so发送到计算机。