我正在尝试使用IPython.parallel对SSH的支持,以允许我的Linux客户机从安装了EPD64的OS服务器上运行远程ipengine。但是,这会失败,因为它试图使用我的本地计算机找出在远程主机上运行的正确命令,该主机将其ipengineapp包放在不同的位置。如何修改ipcluster_config.py以识别差异?
具体地说,当我在远程主机上运行ipcluster start --log-level=DEBUG时,我会得到控制台输出,告诉我其中包含以下行:
[IPClusterStart] Starting LocalEngineLauncher: ['/Library/Frameworks/EPD64.framework/Versions/7.3/bin/python', '-c', 'from IPython.parallel.apps.ipengineapp import launch_new_instance; launch_new_instance()', '--profile-dir', u'/Users/username/.ipython/profile_default', '--cluster-id', u'', '--log-to-file', '--log-level=20']另一方面,当使用ipcluster start --log-level=DEBUG在我的本地机器上运行时,我得到以下代码行,这适用于Linux主机:
[IPClusterStart] Starting SSHEngineLauncher: ['ssh', '-tt', u'hostname', '/usr/bin/python', u'/usr/lib/python2.7/site-packages/IPython/parallel/apps/ipengineapp.py', '--profile-dir', u'/home/username/.ipython/profile_ssh', '--log-to-file', '--log-level=20']本例的ipcluster_config.py为:
c = get_config()
c.IPClusterEngines.engine_launcher_class = 'SSHEngineSetLauncher'
c.IPClusterStart.controller_launcher_class = 'SSHControllerLauncher'
c.SSHEngineSetLauncher.engines = {
'hostname1': 12,
'hostname2': 12,
}发布于 2013-02-12 12:21:41
我认为这在0.14中得到了改进,但您要查找的配置值是SSHEngineSetLauncher.engine_cmd。在ipcluster_config.py中对其进行编辑,如下所示:
c.SSHEngineSetLauncher.engine_cmd = ['/path/to/your/python', '-c', 'from IPython.parallel.apps.ipengineapp import launch_new_instance; launch_new_instance()']或者,有时即使是最简单的事情也可以工作,只要在一个简单的ssh会话中配置您的路径:
c.SSHEngineSetLauncher.engine_cmd = ['ipengine']https://stackoverflow.com/questions/14822310
复制相似问题