Ipython: خطأ تحطم

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

في [3]: nn.relu
Traceback (آخر مكالمة أخيرة):
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py" ، السطر 113 ، في get_completions
العائد من self._get_completions (body، offset، cursor_position، self.ipy_completer)
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py" ، السطر 129 ، في _get_completions
لـ c في الإكمال:
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py" ، السطر 438 ، في _deduplicate_completions
الإكمالات = قائمة (الإكمالات)
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py" ، السطر 1818 ، في الإكمال
لـ c في self._completions (text، offset، _timeout = self.jedi_compute_type_timeout / 1000):
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py" ، السطر 1862 ، في _completions
full_text = full_text ، cursor_line = cursor_line ، cursor_pos = cursor_column)
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py" ، السطر 2030 ، في _complete
cursor_pos، cursor_line، full_text)
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py" ، السطر 1374 ، في _jedi_matches
text [: offset]، namespaces، العمود = cursor_column، line = cursor_line + 1)
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/jedi/api/__init__.py" ، السطر 726 ، في __init__
المشروع = المشروع (Path.cwd ())، ** kwds)
TypeError: __init __ () حصلت على وسيطة غير متوقعة للكلمة الرئيسية "عمود"

أثناء معالجة الاستثناء أعلاه ، حدث استثناء آخر:

Traceback (آخر مكالمة أخيرة):
ملف "/ home / hcl / miniconda3 / envs / pytorch / bin / ipython" ، السطر 8 ، in
sys.exit (start_ipython ())
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/__init__.py" ، السطر 126 ، في start_ipython
إرجاع launch_new_instance (argv = argv، * kwargs)ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/traitlets/config/application.py" ، السطر 845 ، في launch_instanceapp.start ()ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ipapp.py" ، السطر 356 ، في البدايةself.shell.mainloop ()ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py" ، السطر 564 ، في mainloopالتفاعل الذاتي ()ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py" ، سطر 547 ، قيد التفاعلالكود = self.prompt_for_code ()ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py" ، السطر 475 ، في موجه_الشفرة* self._extra_prompt_options ())
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/shortcuts/prompt.py" ، السطر 1013 ، في الحال
إرجاع self.app.run (set_exception_handler = set_exception_handler)
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py" ، السطر 817 ، قيد التشغيل
self.run_async (pre_run = pre_run ، set_exception_handler = set_exception_handler)
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/asyncio/base_events.py" ، السطر 584 ، في run_until_complete
عودة المستقبل. النتيجة ()
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py" ، السطر 783 ، في run_async
عودة الانتظار _run_async2 ()
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py" ، السطر 771 ، في _run_async2
في انتظار self.cancel_and_wait_for_background_tasks ()
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py" ، السطر 872 ، في Cancel_and_wait_for_background_tasks
في انتظار المهمة
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/buffer.py" ، السطر 1854 ، في new_coroutine
في انتظار coroutine ( a ، * kw)
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/buffer.py" ، السطر 1684 ، في async_completer
وثيقة كاملة الحدث
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/completion/base.py" ، السطر 270 ، في get_completions_async
وثيقة كاملة الحدث
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/completion/base.py" ، السطر 196 ، في get_completions_async
للعنصر في self.get_completions (document، complete_event):
ملف "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py" ، السطر 116 ، في get_completions
exc_type ، exc_value ، exc_tb = sys.exc_info ()
NameError: لم يتم تعريف اسم 'sys'

إذا كنت تشك في أن هذا خطأ IPython 7.19.0 ، فيرجى الإبلاغ عنه على:
https://github.com/ipython/ipython/issues
أو أرسل بريدًا إلكترونيًا إلى القائمة البريدية على [email protected]

يمكنك طباعة تتبع أكثر تفصيلاً الآن باستخدام "٪ tb" ، أو استخدام "٪ debug"
لتصحيحه بشكل تفاعلي.

يمكن تمكين عمليات التتبع الإضافية التفصيلية لأغراض الإبلاغ عن الأخطاء عبر:
٪ config Application.verbose_crash = صحيح

التعليق الأكثر فائدة

قراءة التتبع:

  1. الواردات sys و traceback مفقودة في IPython/terminal/ptutils.py ، وهذه هي المشكلة التي تسبب انهيار Ipython ؛
  2. في jedi/api/__init__.py ، يشكو من تمرير وسيطة "العمود" إلى Script.__init__ ، والتي لا تقبل مثل هذه الوسيطة ؛
  3. يأتي هذا الخطأ من IPython/core/completer.py ، حيث يتم إنشاء jedi.Interpreter جديد في السطر 1373 ، ويمرر وسيطة "عمود" إليه ، مما يؤدي إلى اختناقه.

تم تغيير طريقة إنشاء كائن Script بين Jedi 0.17 و Jedi 0.18:
في 0.17:

     def __init__(self, code=None, line=None, column=None, path=None,                                    
                 encoding=None, sys_path=None, environment=None,                                               
                 project=None, source=None):

في 0.18:

    def __init__(self, code=None, *, path=None, environment=None, project=None):

إذا قمت بتثبيت jedi 0.17 بدلاً من jedi 0.18 ، يجب أن يعمل الإصدار الحالي من ipython.
نجح هذا بالنسبة لي:

pip uninstall jedi
pip install jedi==0.17.2

ال 4 كومينتر

جذر هذه القضية ليس بسبب ipython. قادم بالفعل من حزمة jedi . لكن لدى ipython أيضًا خطأ متعلق بهذا. لم يتم استيراد الوحدة النمطية sys get_completions .

تمت إضافة الوحدات النمطية sys و traceback منذ 7 أشهر ولكن لم يتم تحديثها في pypi. وبسبب هذا ، هذا الخطأ لا علاقة له ipython. خطأ في jedi .

هل يمكنك من فضلك إعطاء بعض المعلومات التفصيلية حول سبب كون هذه مشكلة في jedi ؟
أحدث إصدار ipython على PyPI هو 7.19.0 والذي يحتوي على الاستيراد المفقود - كما أشرت بالفعل - تم إصلاحه في الإصدار الرئيسي ولكن لم يتم إصداره.
https://github.com/ipython/ipython/blob/7.19.0/IPython/terminal/ptutils.py

لم يتم استيراد sys
https://github.com/ipython/ipython/blob/223e783c447a773a497809646ca0d874ea10ceeb/IPython/terminal/ptutils.py#L20 -L24

استخدام sys
https://github.com/ipython/ipython/blob/223e783c447a773a497809646ca0d874ea10ceeb/IPython/terminal/ptutils.py#L116

قراءة التتبع:

  1. الواردات sys و traceback مفقودة في IPython/terminal/ptutils.py ، وهذه هي المشكلة التي تسبب انهيار Ipython ؛
  2. في jedi/api/__init__.py ، يشكو من تمرير وسيطة "العمود" إلى Script.__init__ ، والتي لا تقبل مثل هذه الوسيطة ؛
  3. يأتي هذا الخطأ من IPython/core/completer.py ، حيث يتم إنشاء jedi.Interpreter جديد في السطر 1373 ، ويمرر وسيطة "عمود" إليه ، مما يؤدي إلى اختناقه.

تم تغيير طريقة إنشاء كائن Script بين Jedi 0.17 و Jedi 0.18:
في 0.17:

     def __init__(self, code=None, line=None, column=None, path=None,                                    
                 encoding=None, sys_path=None, environment=None,                                               
                 project=None, source=None):

في 0.18:

    def __init__(self, code=None, *, path=None, environment=None, project=None):

إذا قمت بتثبيت jedi 0.17 بدلاً من jedi 0.18 ، يجب أن يعمل الإصدار الحالي من ipython.
نجح هذا بالنسبة لي:

pip uninstall jedi
pip install jedi==0.17.2
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات