%run
ning file python ditandai dengan # -*- coding: utf-8 -*-
dan disimpan dalam format non-utf8 dapat crash ipython (kembali ke shell).
Untuk mendapatkan crash, file harus:
Berikut adalah skrip kecil yang mereproduksi ini, disimpan dalam ISO-8859-15, bersama dengan jejak tumpukan:
file.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]'}
Tentu saja, file tersebut seharusnya disimpan dalam format yang benar.
Tapi idealnya sesi tidak akan hilang, dan pesan yang lebih informatif akan dikeluarkan.
Saya menghitung tiga belas traceback berantai - Saya pikir mendapatkan sebanyak itu tanpa menggunakan rekursi akan memberi Anda semacam hadiah. ;-)
Jika nama file tidak mudah dijangkau, maka berikut adalah perintah yang saya gunakan untuk melacak pelakunya:
find . -name "*.py" -exec file {} \; | grep -v ASCII | grep -v UTF-8 | grep -v empty
Komentar yang paling membantu
Saya menghitung tiga belas traceback berantai - Saya pikir mendapatkan sebanyak itu tanpa menggunakan rekursi akan memberi Anda semacam hadiah. ;-)