如何在IPython集群中导入模块

我正在尝试将一些个人模块导入我的IPython集群中。我在Windows Vista 64位上使用Anacondas

from IPython.parallel import Client

rc = Client()

dview = rc[:]    

with dview.sync_imports():
    import lib.rf

它给了我这个错误:

No module named 'lib.rf'

我可以将模块导入我的IPython笔记本的其余部分,因为我有以下.bat文件来启动ipython笔记本:

cd C:\Users\Jon\workspace\bf
set PYTHONPATH=%PYTHONPATH%;C:\Users\Jon\workspace\bf
C:\Anaconda\envs\p33\scripts\ipython notebook

我正在使用类似的代码来启动我的IP集群:

cd C:\Users\Jon\workspace\bf    
set PYTHONPATH=%PYTHONPATH%;C:\Users\Jon\workspace\bf
C:\Anaconda\envs\p33\Scripts\ipcluster start --n=7

为什么这不起作用?

更多信息:

如果我打印出sys.path,则会得到一个包含C:\ Users \ Jon \ workspace \ bf的列表

如果我打印出群集的路径,则会得到相同的列表:

%px sys.path

['',
 '',
 '',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\distribute-0.6.28-py3.3.egg',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\pykalman-0.9.5-py3.3.egg',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\patsy-0.2.1-py3.3.egg',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\joblib-0.8.3_r1-py3.3.egg',
 'C:\\Users\\Jon\\workspace\\bf',
 'C:\\Users\\Jon\\workspace\\bf\\my_numba',
 'C:\\Anaconda\\envs\\p33\\python33.zip',
 'C:\\Anaconda\\envs\\p33\\DLLs',
 'C:\\Anaconda\\envs\\p33\\lib',
 'C:\\Anaconda\\envs\\p33',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\Sphinx-1.2.3-py3.3.egg',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\win32',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\win32\\lib',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\Pythonwin',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\runipy-0.1.1-py3.3.egg',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\setuptools-7.0-py3.3.egg',
 'C:\\Anaconda\\envs\\p33\\lib\\site-packages\\IPython\\extensions']

In [45]: 

进一步的分析:

%px lib.__path__

Out[0:11]: _NamespacePath(['C:\\Anaconda\\envs\\p33\\lib\\site-packages\\win32\\lib'])


lib.__path__
Out[57]: ['.\\lib']

好像ipcluster和Notebook在不同的地方查看lib。我尝试将lib重命名为mylib。它没有帮助。

罗兰

似乎with dview.sync_imports()是在IPython Notebook环境之外的其他地方运行,因此依赖于其他PYTHONPATH。它肯定不是在集群引擎之一上运行的,因此不会期望它会利用您的PYTHONPATH集群设置。

我想您需要在用于调用python环境的PYTHONPATH(而不是PATH)中具有该目录,因为这是您从中导入模块的位置。

我不太清楚在调用ipclusters的DOS外壳中设置PYTHONPATH的影响。我可以看到有人希望这样可以使引擎知道您的目录,但是我想知道PYTHONPATH是否已初始化到您调用的环境中IPython.parallel.Client

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中导入liblas模块?

来自分类Dev

如何在Python中导入liblas模块?

来自分类Dev

如何在测试中导入测试模块?

来自分类Dev

虚拟环境-如何在导入的本地模块中导入?

来自分类Dev

未找到React模块-如何在React中导入模块

来自分类Dev

无法在IPython Notebook中导入Django模块

来自分类Dev

无法在iPython中导入ggplot模块

来自分类Dev

如何在Julia中导入自定义模块

来自分类Dev

如何在PyCharm控制台中导入自己的模块

来自分类Dev

如何在MapReduce作业中导入自定义模块?

来自分类Dev

如何在Python中导入子模块(不带exec)

来自分类Dev

如何在模块中导入lib文件夹

来自分类Dev

如何在Sublime Text插件中导入Python模块?

来自分类Dev

如何在ecmascript-6中导入模块?

来自分类Dev

如何在XQuery中导入公共模块名称空间

来自分类Dev

如何在Node.js中导入util模块?

来自分类Dev

如何在文件系统中导入外部模块?

来自分类Dev

TypeScript如何在Web Worker中导入外部模块

来自分类Dev

如何在python中导入gda-ui模块?

来自分类Dev

如何在Ubuntu 15.04上的Python中导入自制模块

来自分类Dev

如何在系统的python中导入Anaconda的模块?

来自分类Dev

如何在 Angular 4 中导入自定义模块?

来自分类Dev

如何在iPython中从名称空间隐藏导入的模块?

来自分类Dev

如何在scalaz中导入===

来自分类Dev

如何在Python中导入

来自分类Dev

如何不在Python模块中导入导入的子模块?

来自分类Dev

如何防止从模块中导入功能?

来自分类Dev

如何防止从模块中导入功能?

来自分类Dev

如何找到要在python中导入的模块