Не удается запустить IPython-Parallel в Jupyter Notebook

#parallel-processing #jupyter-notebook #multiprocessing #jupyter #ipython-parallel

#параллельная обработка #jupyter-notebook #многопроцессорная обработка #jupyter #ipython-parallel

Вопрос:

Я пытаюсь следовать этим инструкциям по использованию ipyparallel , чтобы ускорить некоторые скрипты Python в Jupyter Notebook. При выполнении

 import ipyparallel as ipp
IPPC = ipp.Client()
  

Я получаю следующую ошибку:

 Using matplotlib backend: TkAgg

Waiting for connection file: ~/.ipython/profile_default/security/ipcontroller-client.json

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-11-bf8e572b63bc> in <module>()
     18 display(HTML("<style>.container {width:100% !important;}</style>"))
     19 
---> 20 IPPC = ipp.Client()
     21 
     22 

/home/guest/.local/lib/python3.7/site-packages/ipyparallel/client/client.py in __init__(self, url_file, profile, profile_dir, ipython_dir, context, debug, sshserver, sshkey, password, paramiko, timeout, cluster_id, **extra_args)
    415                         no_file_msg,
    416                     ])
--> 417                     raise IOError(msg)
    418         if url_file is None:
    419             raise IOError(no_file_msg)

OSError: Connection file '~/.ipython/profile_default/security/ipcontroller-client.json' not found.
You have attempted to connect to an IPython Cluster but no Controller could be found.
Please double-check your configuration and ensure that a cluster is running.
  

Файл ~/.ipython/profile_default/security/ipcontroller-client.json не существует (папка пуста!!) и выполнение sudo find / -name ipcontroller-client не возвращает никаких результатов.

Кроме того, при попытке запуска ipcluster в терминале я получаю

 user@laptop:~$ ipcluster start -n 2
ipcluster: command not found
  

и вкладка «Кластеры» в Jupyter Notebook пуста: Скриншот

Тем не менее, ipyparallel определенно установлен:

 user@laptop:~$ pip3 install ipyparallel
Requirement already satisfied: ipyparallel in ./.local/lib/python3.7/site-packages (6.3.0)
Requirement already satisfied: jupyter-client in /usr/lib/python3/dist-packages (from ipyparallel) (5.2.3)
Requirement already satisfied: traitlets>=4.3 in /usr/lib/python3/dist-packages (from ipyparallel) (4.3.2)
Requirement already satisfied: tornado>=4 in /usr/lib/python3/dist-packages (from ipyparallel) (5.1.1)
Requirement already satisfied: pyzmq>=13 in /usr/lib/python3/dist-packages (from ipyparallel) (17.1.2)
Requirement already satisfied: ipykernel>=4.4 in /usr/lib/python3/dist-packages (from ipyparallel) (4.9.0)
Requirement already satisfied: ipython-genutils in /usr/lib/python3/dist-packages (from ipyparallel) (0.2.0)
Requirement already satisfied: decorator in /usr/lib/python3/dist-packages (from ipyparallel) (4.3.0)
Requirement already satisfied: ipython>=4 in /usr/lib/python3/dist-packages (from ipyparallel) (5.8.0)
Requirement already satisfied: python-dateutil>=2.1 in /usr/lib/python3/dist-packages (from ipyparallel) (2.7.3)
Requirement already satisfied: pexpect in /usr/lib/python3/dist-packages (from ipython>=4->ipyparallel) (4.6.0)
  

и есть три файла ipcluster , ipcontroller и ipengine в /home/user/.local/bin которых находятся скрипты Python.

В чем может быть проблема?

Ответ №1:

Сара.Кстати, недавно у меня был аналогичный первоначальный опыт работы с ipyparallel, где симптомы были почти такими же. После его установки содержимое вкладки «Кластеры» папок, файлов и Jupyter Notebook, о котором вы упоминали, отсутствовало.
Проблема заключалась в том, что, хотя казалось, что ipyparallel был установлен, он был либо установлен неправильно, либо конфигурация, разрешения или владельцы (пользователь или root) были перепутаны.

Но сначала вы сообщили:

 user@laptop:~$ ipcluster start -n 2  
ipcluster: command not found  
  

и "there are three files: ipcluster, ipcontroller, and ipengine in /home/user/.local/bin which are Python scripts."

В моей системе Ubuntu эти программы, установленные в /usr/local/bin , не ~/.local/bin .
В любом случае, ipcluster: command not found означает, что ipcluster отсутствует на вашем пути выполнения.
Вы можете запустить его, введя полный путь к программе или первый компакт-диск в ее папку.
Это может решить вашу проблему, или это может выявить больше проблем.

Хорошо, теперь о моей истории и ее решении…
Я впервые установил ipyparallel:

 $ pip3 install ipyparallel
  

Были проблемы, поэтому впоследствии,

 $ pip3 install --user ipyparallel
  

Проблемы остались, поэтому,

 $ sudo pip3 install ipyparallel
  

Я тоже видел сообщения «Требование уже выполнено: …», но они были
этому предшествует предупреждение:

 WARNING: The directory '/home/(user name here)/.cache/pip' or its parent  
directory is not owned or is not writable by the current user. The cache  
has been disabled. Check the permissions and owner of that directory.  
If executing pip with sudo, you may want sudo's -H flag.
  

Все по-прежнему не работает!
Итак, я запустил

 $ sudo -H pip3 install ipyparallel
  

На этом этапе были обнаружены все папки и файлы, соответствующие элементы появились на вкладке «кластеры» Jupyter Notebook, и проблемы исчезли.

Теперь я признаю, что я не понимаю всего этого, и я склонен действовать инстинктивно и по опыту, пока все в конечном итоге не заработает (или нет). Итак, я не говорю, что вам нужно (или следует) это сделать, но я надеюсь, что мои комментарии послужат отправной точкой и некоторыми полезными советами.