I установил Python 3.6 на Ubuntu 16.04 с помощью Jonathon Fernyhough PPA:
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
Я создал строку, используя новую литераловую интерполяцию строк, но я предоставил неверный спецификатор формата. Я получил не только ожидаемый ValueError: Invalid format specifier
, но и неожиданный ModuleNotFoundError: No module named 'apt_pkg'
.
$ python3.6
Python 3.6.0 (default, Dec 29 2016, 21:40:36)
[GCC 5.4.1 20161202] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> value = 4 * 20
>>> f'the value is {value:%A}'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Invalid format specifier
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Invalid format specifier
Я сообщил об этом в Python bug tracker. Там было отмечено, что:
Кажется, проблема поставщика не сама CPython. Эта же проблема также возникает и в Ubuntu 16.10 Python 3.6. Вызывать любое исключение может вызвать следующее:
Python 3.6.0b2 (default, Oct 11 2016, 05:27:10)
[GCC 6.2.0 20161005] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> raise Exception
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
Exception
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
Exception
>>>
Также см. https://bugs.launchpad.net/ubuntu/+source/python3.6/+bug/1631367.
Наконец, проблема была закрыта комментарием
Да, это, как представляется, инфраструктура отчетов об отказах поставщиков это не работает. Зачем им нужен отчет для каждой трассы на интерактивное приглашение вне меня, но похоже, что они пытаясь сделать.
Теперь мои вопросы:
- Как интерпретировать этот комментарий? Является ли продавец в этом случае Джонатаном Фернихоу PPA? И он что-то изменил для кода Python, который он распространяет, чтобы он пытался отправить отчет для каждого исключения, которое создает трассировку?
- Кому мне нужно уведомить или где мне нужно указать ошибку, чтобы решить эту проблему?