ipyparallel view.sync_import 不绑定到其他名称

ipyparallel view.sync_import does not bind to additional name

我对 ipyparallel 有以下问题(使用 python 3.4)。 view.sync_imports 确实忽略了我尝试使用 'as' 指令将它们绑定到的额外模块名称。

示例:

c = Client(profile='slurm')
v = c[:]
with v.sync_imports():

    import pandas as pd

Output: importing pandas on engine(s)

因此 pandas 只能在名称 'pandas' 下使用。 有人建议我能做些什么吗?

我也试过 %px 魔法,没有帮助

当你做的时候

import pandas as pd

Python 将其解释为两个操作:importassignment

import pandas
pd = pandas

sync_imports() 实现为 import hook,它(据我所知)只能访问导入部分,而不能访问赋值部分。也就是说 sync_imports 只能支持 import pandas 而不能支持 import pandas as pd.

然而,%px 应该工作,因为它只是直接执行:

import pandas as pd     # local
%px import pandas as pd # remote

或者作为 --local 的单元魔法,如果你想对所有引擎和本地工作区进行共享初始化:

%%px --local
import pandas as pd
def defined_everywhere():
    """..."""