【发布时间】:2021-02-12 07:08:03
【问题描述】:
我试图让工作人员从他们的 ipython 内核中输出一些信息,并在ipython 会话中执行各种命令。我尝试了文档中的示例,ipyparallel 示例有效,但第二个示例没有(使用ipython 魔法)。我无法让工人执行任何命令。例如,我被以下问题困扰:
from dask.distributed import Client
client = Client()
info = client.start_ipython_workers()
list_workers = info.keys()
%remote info[list_workers[0]]
最后一行返回错误:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-19-9118451af441> in <module>
----> 1 get_ipython().run_line_magic('remote', "info['tcp://127.0.0.1:50497'] worker.active")
~/miniconda/envs/dask/lib/python3.7/site-packages/IPython/core/interactiveshell.py in run_line_magic(self, magic_name, line, _stack_depth)
2334 kwargs['local_ns'] = self.get_local_scope(stack_depth)
2335 with self.builtin_trap:
-> 2336 result = fn(*args, **kwargs)
2337 return result
2338
~/miniconda/envs/dask/lib/python3.7/site-packages/distributed/_ipython_utils.py in remote_magic(line, cell)
115 info_name = split_line[0]
116 if info_name not in ip.user_ns:
--> 117 raise NameError(info_name)
118 connection_info = dict(ip.user_ns[info_name])
119
NameError: info['tcp://127.0.0.1:50497']
我将不胜感激任何有关如何从工作人员上运行的 ipython 内核获取任何信息的示例。
【问题讨论】:
-
如果您先执行
worker=info[list_workers[0]],然后执行%remote worker ...,您会更进一步,但我怀疑还是不行。 -
感谢您的评论!是的,我尝试过,还尝试使用
start_ipython_workers中的magic_names选项注册自定义魔法。我可以看到创建了魔法,但是当我尝试使用它们时,我得到了TimeoutError: Timeout waiting for IPython output。 -
如果还没有问题,请提出问题。可能这个功能已经被放弃了。
-
啊,好吧,会的,虽然这对我来说比较好奇。
标签: ipython dask dask-distributed ipython-parallel ipython-magic