Использование ipcluster для подключения к серверу OS X с EPD из Linux?
Я пытаюсь использовать поддержку IPython.parallel для SSH, чтобы позволить моему клиенту Linux работать удаленно ipengine
с сервера OS X, на котором установлен EPD64. Однако это не удается, так как он пытается использовать мою локальную машину, чтобы определить правильную команду для запуска на удаленном хосте, который имеет свои 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,
}
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()']
или иногда даже самая простая вещь работает, если ваш PATH сконфигурирован в простой сессии ssh:
c.SSHEngineSetLauncher.engine_cmd = ['ipengine']