2013-02-11 23 views
1

我正在嘗試使用IPython.parallel支持SSH,以允許我的Linux客戶端從安裝了EPD64的OS X服務器運行遠程ipengine。然而,這會失敗,因爲它試圖使用我的本地計算機找出正確的命令在遠程主機上運行,​​遠程主機的ipengineapp軟件包位於不同的位置。如何修改ipcluster_config.py以識別差異?使用ipcluster從Linux連接到帶有EPD的OS X服務器?

具體而言,當我在遠程主機上運行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, 
} 

回答

1

我認爲這在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'] 
+0

謝謝!這就是訣竅! – 2013-02-12 04:57:25

相關問題