2015-11-04 86 views
1

我在同步ipyparallel引擎之間導入時遇到問題。我想要並行運行隨機模擬。爲此我編寫了一個名爲'gillespie'的函數。我有兩個版本的函數,一個使用Python並在Cython中獲得一些速度。兩者都在工作。ipyparallel進口:使用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

回答

2

%px import gillespie在引擎上執行import語句。爲了這個工作,你需要確保gillespie.so可用於這些引擎。您可以通過將其放置在站點包或PYTHONPATH中來「安裝」它,或者您可以依靠您在筆記本中已經依賴的基於當前目錄的加載,在這種情況下,您需要確保gillespie.so位於引擎的工作目錄中。如果你是一臺機器或共享文件系統上,你可以做到這一點:

%px cd /path/to/dir/containing/gillespie.so 

或發送gillespie.so到機器上,如果文件系統不共享。