具有多个路径依赖性的Ipyparallel的sync_imports

时间:2017-06-23 22:55:00

标签: python class parallel-processing ipython-parallel

我想导入一个类,我们称之为MyClass,并假设它存储在MyClass.py文件中。但是,类本身依赖于分布在多个文件夹中的各种文件。因此,如果我想在Python会话中导入该类,我会写

import sys
sys.path.append('/path_to_folder1/')
sys.path.append('/path_to_folder2/')
sys.path.append('/path_to_folder2/')
from MyClass import MyClass

这很好用,因为在这些文件夹中可以找到所有文件依赖项。 现在,我想在Ipyparallel上运行MyClass,即我想要执行以下操作

import ipyparallel
clients = ipyparallel.Client()
dview = clients.direct_view()
with dview.sync_imports():
    from MyClass import MyClass

但是,这会产生错误,说无法找到模块MyClass。 这是因为sys.path.append仅在本地添加,而不是由ipyparallel创建的python的不同实例。但那么我的问题是,如何导入MyClass? 我在这里找到了部分答案Import custom modules on IPython.parallel engines with sync_imports(), 基本上说当从存储MyClass.py的路径运行ipcluster时,它会自动找到MyClass。但是,我仍然会收到错误,因为MyClass本身在各种文件夹中都有依赖项。所以我的问题是:如何添加其他文件夹依赖项(例如使用PYTHONPATH),以便我可以使用sync_imports导入MyClass?

0 个答案:

没有答案