Ipython: сбой с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Python Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 17 сСнт. 2016  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: ipython/ipython

%run ning Ρ„Π°ΠΉΠ»Π° python, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ # -*- coding: utf-8 -*- ΠΈ сохранСнного Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΎΡ‚ utf8, ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сбою ipython (Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ).
Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сбой, Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½:

  • содСрТат символы, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ ascii
  • содСрТат ΠΎΡˆΠΈΠ±ΠΊΡƒ (ΠΏΡ€ΠΈ запускС с python3 гСнСрируСтся трассировка стСка, Π½ΠΎ Π±Π΅Π· сбоя)
  • Π±Ρ‹Ρ‚ΡŒ сохранСнным с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ

Π’ΠΎΡ‚ нСбольшой сцСнарий, воспроизводящий это, сохранСнный Π² ISO-8859-15 вмСстС с трассировкой стСка:
files.zip

%run wrong_encoding.py
...
... <long trace>
...
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 78: invalid continuation byte
 python3 -c "import IPython; print(IPython.sys_info())"
{'commit_hash': '5c9c918',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/usr/lib/python3.4/site-packages/IPython',
 'ipython_version': '5.1.0',
 'os_name': 'posix',
 'platform': 'Linux-3.16.7-42-desktop-x86_64-with-SuSE-13.2-x86_64',
 'sys_executable': '/usr/bin/python3',
 'sys_platform': 'linux',
 'sys_version': '3.4.5 (default, Jul 03 2016, 13:55:08) [GCC]'}

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π±Ρ‹Ρ‚ΡŒ сохранСн Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

Но Π² ΠΈΠ΄Π΅Π°Π»Π΅ сСанс Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ потСрян ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСниС.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― насчитал Ρ‚Ρ€ΠΈΠ½Π°Π΄Ρ†Π°Ρ‚ΡŒ связанных трассировок - Π΄ΡƒΠΌΠ°ΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСства Π±Π΅Π· использования рСкурсии Π΄ΠΎΠ»ΠΆΠ½ΠΎ принСсти Π²Π°ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ·. ;-)

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― насчитал Ρ‚Ρ€ΠΈΠ½Π°Π΄Ρ†Π°Ρ‚ΡŒ связанных трассировок - Π΄ΡƒΠΌΠ°ΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСства Π±Π΅Π· использования рСкурсии Π΄ΠΎΠ»ΠΆΠ½ΠΎ принСсти Π²Π°ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ·. ;-)

9955 - Π³Ρ€ΡƒΠ±ΠΎΠ΅ исправлСниС этого; ошибка Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Π°, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сбою IPython.

Если Π΄ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π΅Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ Π²ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я использовал, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°:

find . -name "*.py" -exec file {} \; | grep -v ASCII | grep -v UTF-8 | grep -v empty

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

minrk picture minrk  Β·  5ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

zhao-ji picture zhao-ji  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

quchunguang picture quchunguang  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

henryiii picture henryiii  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ghost picture ghost  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ