Использование 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']
Другие вопросы по тегам