Я installed Python 3.6 on Ubuntu 16.04 с помощью Jonathon Fernyhough's PPA:ModuleNotFoundError в tracebacks с Python3.6 на Linux
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. Эта же проблема возникает и в Python 3.6 Ubuntu 16.10. Поднимите любое исключение может привести к этому:
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, который он распространяет, чтобы он пытался записать отчет для каждого исключения, которое создает трассировку?
- Кому я должен уведомлять или где мне нужно указать ошибку, чтобы решить эту проблему?
Я рекомендую рекомендовать [deadsnakes ppa] (https://launchpad.net/~fkrull/+archive/ubuntu/deadsnakes). – hwjp
'sudo add-apt-repository ppa: fkrull/deadsnakes' - это способ пойти имхо. –