Ipython: Ошибка сокета 99 для ноутбука ipython

Созданный на 23 июл. 2014  ·  13Комментарии  ·  Источник: ipython/ipython

Привет
при попытке открыть записную книжку я получаю ошибку сокета 99 «Невозможно назначить запрошенный адрес». Это произошло после обновления системы, хотя Ipython был обновлен только с 2.1.0-62 до 2.1.0-63 (пакет SuSE), я безуспешно проверил следующее:

  1. проверено, работает ли устройство loopback (это с адресом inet: 127.0.0.1 Маска: 255.0.0.0)
  2. проверяется с помощью netstat -lp, если стандартный порт уже назначен (это не было)
  3. запустите небольшой тестовый скрипт для запуска веб-сервера торнадо на порту 8888, он сработал
  4. Создайте профиль по умолчанию и снова запустите ipython
  5. Запущен ipython с явным хостом и (случайным) портом (ipython notebook --init --ip = 'localhost' --port = 49151)
  6. Пробовал как root
  7. Проверено, что файервол не блокирует
  8. Проверено, что я могу писать в tmp (в случае необходимости)

Так что я не понимаю, что еще я могу сделать. Приветствуются любые указания на то, что еще я могу сделать.

Начальное сообщение
tmp /> ipython notebook --init --log-level = 50 --ip = 'localhost' --port = 49151 [15:46:39]
Отслеживание (последний вызов последний):
Файл "/ usr / bin / ipython", строка 5, в
start_ipython ()
Файл "/usr/lib/python2.7/site-packages/IPython/ init .py", строка 120, в start_ipython
вернуть запуск_новый_экземпляр (argv = argv, _kwargs)Файл "/usr/lib/python2.7/site-packages/IPython/config/application.py", строка 563, в launch_instanceapp.initialize (argv)Файл "", строка 2, в инициализацииФайл "/usr/lib/python2.7/site-packages/IPython/config/application.py", строка 92, в catch_config_errorметод возврата (app, * args, * _kwargs)Файл "/usr/lib/python2.7/site-packages/IPython/terminal/ipapp.py", строка 320, в инициализацииsuper (TerminalIPythonApp, сам) .initialize (argv)Файл "", строка 2, в инициализацииФайл "/usr/lib/python2.7/site-packages/IPython/config/application.py", строка 92, в catch_config_errorметод возврата (app, _args, * _kwargs)Файл "/usr/lib/python2.7/site-packages/IPython/core/application.py", строка 381, в инициализацииself.parse_command_line (argv)Файл "/usr/lib/python2.7/site-packages/IPython/terminal/ipapp.py", строка 315, в parse_command_lineвернуть super (TerminalIPythonApp, self) .parse_command_line (argv)Файл "", строка 2, в parse_command_lineФайл "/usr/lib/python2.7/site-packages/IPython/config/application.py", строка 92, в catch_config_errorметод возврата (app, _args, * _kwargs)Файл "/usr/lib/python2.7/site-packages/IPython/config/application.py", строка 475, в parse_command_lineвернуть self.initialize_subcommand (subc, subargv)Файл "", строка 2, в initialize_subcommandФайл "/usr/lib/python2.7/site-packages/IPython/config/application.py", строка 92, в catch_config_errorметод возврата (app, _args, * _kwargs)Файл "/usr/lib/python2.7/site-packages/IPython/config/application.py", строка 413, в initialize_subcommandself.subapp.initialize (argv)Файл "", строка 2, в инициализацииФайл "/usr/lib/python2.7/site-packages/IPython/config/application.py", строка 92, в catch_config_errorметод возврата (app, _args, * _kwargs)Файл "/usr/lib/python2.7/site-packages/IPython/html/notebookapp.py", строка 745, в инициализацииself.init_webapp ()Файл "/usr/lib/python2.7/site-packages/IPython/html/notebookapp.py", строка 632, в init_webappself.http_server.listen (порт, self.ip)Файл "/usr/lib64/python2.7/site-packages/tornado/tcpserver.py", строка 116, в прослушиваниисокеты = bind_sockets (порт, адрес = адрес)Файл "/usr/lib64/python2.7/site-packages/tornado/netutil.py", строка 103, в bind_socketssock.bind (sockaddr)Файл "/usr/lib64/python2.7/socket.py", строка 224, в метахвернуть getattr (self._sock, name) ( аргументы)
ошибка: [Errno 99] Невозможно назначить запрошенный адрес

Конфигурация моей системы
{'commit_hash': '681fd77',
'commit_source': 'установка',
'default_encoding': 'UTF-8',
'ipython_path': '/usr/lib/python2.7/site-packages/IPython',
'ipython_version': '2.1.0',
'os_name': 'posix',
'платформа': 'Linux-3.11.10-17-default-x86_64-with-SuSE-13.1-x86_64',
'sys_executable': '/ usr / bin / python',
'sys_platform': 'linux2',
'sys_version': '2.7.6 (по умолчанию, 21 ноября 2013 г., 15:55:38) [GCC]'}

Моя версия торнадо
Имя: python-tornado / Версия: 3.2.1-2.1 / Arch: x86_64

Самый полезный комментарий

А что, если вы попробуете --ip=127.0.0.1 ?

Все 13 Комментарий

А что, если вы попробуете --ip=127.0.0.1 ?

Привет

Это работает (надо было подумать об этом). Я положил его в свой ipython_notebook_config.py. Интересно, почему изменилось поведение ...
Так что со своей стороны я мог закрыть этот вопрос. Я бы оставил эту проблему открытой только в том случае, если бы можно было изменить сообщение об ошибке на что-то значимое, указывающее на решение. Но, возможно, эта проблема слишком специфическая ...

Большое спасибо за быстрый ответ!

Копирование объяснения из # 6191:

IPython по умолчанию прослушивает localhost. 127.0.0.1 должен вести себя одинаково и делает это почти во всех случаях. Некоторые случаи, когда это может быть обработано по-другому, включают локальные прокси и / или брандмауэры (обычно из-за недосмотра конфигурации, а не преднамеренного различия в поведении). Мы обнаружили случаи, когда localhost работает, а 127 - нет, и наоборот, поэтому однозначно правильного ответа для значения по умолчанию нет.

У вас есть конфигурация брандмауэра и / или прокси? Если да, то контролируете ли вы его конфигурацию? Я бы назвал такое поведение ошибкой в ​​настройке вашей сети, но, возможно, у вас нет разрешения на ее исправление.

Спасибо, указав 127.0.0.1, я тоже решил ошибку сокета.

Если вы используете его на облачном сервере, вы можете использовать --ip=0.0.0.0 .

Спасибо, что не решили эту проблему, я настраиваю сервер ноутбука на облачном сервере. И указание IP для прослушивания как «0.0.0.0» решает ту же проблему.

Спасибо, у меня была такая же проблема :)

спасибо, что решил это!

Для людей, пришедших из результатов поиска: проверьте свой /etc/hosts наличие опечаток и конфигурации ipv6. localhost должен указывать только на loopback ipv4 ( 127.0.0.1 ), а не на ipv6 ( ::1 ). Это может сломать другие вещи, не только jupyter.

Например, это неправильно:
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
хорошо:
::1 localhost6 localhost6.localdomain6

https://github.com/codenvy/codenvy/issues/2427#issuecomment -397347888
https://bugzilla.redhat.com/show_bug.cgi?id=211800#c4

@mlazowik Большое спасибо! Это решило мою проблему - интересно, у скольких других есть такая же проблема, но они выбрали решение 127.0.0.1. Это правильное решение (обеспечение правильности таблицы поиска имени хоста). В моем случае (Arch Linux) мой /etc/hosts был "отправлен" следующим образом:

127.0.0.1       localhost.localdomain    localhost
::1             localhost.localdomain    localhost

И исправил на следующее:

127.0.0.1       localhost.localdomain    localhost
::1             localhost6.localdomain6  localhost6

Если вы используете его на облачном сервере, вы можете использовать --ip=0.0.0.0 .

Для меня (на Mac) только --ip = 0.0.0.0 работает с локальным запущенным докером.

В моем случае это связано с / etc / hosts для дублированного адреса обратной связи :: 1 в IPv6.
После того, как закомментировал второй адрес обратной связи :: 1, ошибка исчезла.

Screenshot from 2019-12-14 16-32-13

@mlazowik У меня была та же проблема с тем же возможным решением, но мне показалось интересным, что man /etc/hosts имеет это в своем примере, что не позволяет мне разобраться в моей проблеме (поскольку предполагаемый авторитет рекомендует именно то, что вы говорите проблематично):

# The following lines are desirable for IPv4 capable hosts
127.0.0.1       localhost
127.0.1.1       thishost.mydomain.org  thishost

[...]

# The following lines are desirable for IPv6 capable hosts
::1             localhost ip6-localhost ip6-loopback

Я удалил localhost из записи ::1 (оставив два других), и все в порядке. Я также предположил, что ip6 было ключевым словом ipv6 , но, возможно, ip6-foo и foo6 оба подходят (например, просто некоторая форма искажения имени по сравнению с ipv4 эквивалент)?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги