Ipython: خطأ في مأخذ التوصيل 99 لدفتر إبيثون

تم إنشاؤها على ٢٣ يوليو ٢٠١٤  ·  13تعليقات  ·  مصدر: ipython/ipython

أهلا
عند محاولة فتح دفتر ملاحظات ، يظهر لي خطأ في المقبس 99 "لا يمكن تعيين العنوان المطلوب". حدث هذا بعد تحديث النظام ، على الرغم من تحديث Ipython فقط من 2.1.0-62 إلى 2.1.0-63 (حزمة SuSE) لقد راجعت ما يلي دون أي نجاح:

  1. تم التحقق مما إذا كان جهاز الاسترجاع قيد التشغيل (مع inet addr: 127.0.0.1 Mask: 255.0.0.0)
  2. تم التحقق منه باستخدام netstat -lp إذا تم تعيين المنفذ القياسي بالفعل (لم يكن كذلك)
  3. قم بتشغيل برنامج نصي اختبار صغير لبدء خادم الويب tornado في المنفذ 8888 ، لقد نجح
  4. قم بإنشاء ملف تعريف افتراضي وقم بتشغيل ipython مرة أخرى
  5. بدأ ipython مع مضيف صريح ومنفذ (عشوائي) (دفتر ipython --init --ip = 'localhost' --port = 49151)
  6. حاولت كجذر
  7. تم التحقق من أن جدار الحماية لا يحظر
  8. تم التحقق من أنني قادر على الكتابة إلى tmp (في حالة الحاجة)

لذلك أنا في حيرة مما يمكنني فعله. أي مؤشر على ما يمكنني فعله هو موضع تقدير.

رسالة البدء هي
tmp /> دفتر ipython - init --log-level = 50 --ip = 'localhost' --port = 49151 [15:46:39]
Traceback (آخر مكالمة أخيرة):
ملف "/ usr / bin / ipython" ، السطر 5 ، بتنسيق
start_ipython ()
ملف "/usr/lib/python2.7/site-packages/IPython/ init .py" ، السطر 120 ، في start_ipython
إرجاع launch_new_instance (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 ، self) .initialize (argv)ملف ""، السطر 2 ، في التهيئةملف "/usr/lib/python2.7/site-packages/IPython/config/application.py" ، السطر 92 ، في catch_config_errorطريقة الإرجاع (التطبيق ، _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طريقة الإرجاع (التطبيق ، _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طريقة الإرجاع (التطبيق ، _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طريقة الإرجاع (التطبيق ، _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] لا يمكن تعيين العنوان المطلوب

تكوين نظامي هو
{'impl_hash': '681fd77'،
"الالتزام_المصدر": "التثبيت" ،
"التشفير_الافتراضي": "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 إلى المضيف المحلي افتراضيًا. يجب أن يتصرف 127.0.0.1 بنفس الطريقة ، ويفعل ذلك في جميع الحالات تقريبًا. تتضمن بعض الحالات التي يمكن فيها معالجة هذا الأمر بشكل مختلف الوكلاء المحليين و / أو الجدران النارية (عادةً بسبب الإشراف على التكوين ، بدلاً من الاختلاف المتعمد في السلوك). لقد وجدنا حالات حيث يعمل المضيف المحلي ولا يعمل 127 والعكس صحيح ، لذلك لا توجد إجابة صحيحة لا لبس فيها للإعداد الافتراضي.

هل لديك تكوين جدار حماية و / أو وكيل؟ إذا كان الأمر كذلك ، هل تتحكم في تكوينه؟ أود أن أصف هذا السلوك على أنه خطأ في إعداد الشبكة لديك ، ولكن قد لا يكون لديك إذن بإصلاحه.

شكرًا لك ، أدى تحديد 127.0.0.1 إلى حل خطأ المقبس بالنسبة لي أيضًا

إذا كنت تستخدمه في خادم سحابي ، فيمكنك استخدام --ip=0.0.0.0 .

نشكرك على استمرار تشغيل هذه المشكلة ، فأنا أقوم بإعداد خادم دفتر ملاحظات على خادم سحابي. ويؤدي تحديد عنوان IP الخاص بالاستماع إلى "0.0.0.0" إلى حل هذه المشكلة نفسها.

شكرا ، لدي نفس المشكلة :)

شكرا انها تحلها!

بالنسبة للأشخاص القادمين من نتائج البحث: تحقق من /etc/hosts بحثًا عن الأخطاء الإملائية وتهيئة ipv6. يجب أن يشير localhost فقط إلى استرجاع ipv4 ( 127.0.0.1 ) ، وليس إلى ipv6 ( ::1 ). هذا يمكن أن يكسر أشياء أخرى ، ليس فقط المشتري.

على سبيل المثال ، هذا خطأ:
::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 التقييمات