我使用Jonathon Fernyhough 的 PPA在 Ubuntu 16.04 上安装了 Python 3.6:
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 错误跟踪器。那里注意到:
这似乎是供应商的问题,而不是 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。
最后,这个问题被评论关闭了
是的,这似乎是供应商的故障报告基础设施出现故障。为什么他们想要在交互式提示下的每个回溯报告都超出了我的范围,但这似乎是他们正在尝试做的事情。
我现在的问题是:
- 我如何解释这条评论?在这种情况下,供应商是 Jonathon Fernyhough 的 PPA 吗?他是否对他分发的 Python 代码进行了一些更改,以便它尝试为每个产生回溯的异常提交报告?
- 我需要通知谁或者我需要在哪里提交错误来解决这个问题?