I installed Python 3.6 on Ubuntu 16.04 za pomocą Jonathon Fernyhough's PPA:ModuleNotFoundError w tracebacks z Python3.6 na linux
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
zrobiłem ciąg, używając nowego dosłownego interpolacji ciąg, ale dostarczony nieprawidłowy format specyfikatora. Mam nie tylko oczekiwane ValueError: Invalid format specifier
, ale także nieoczekiwane 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
Poinformowałem o tym Python bug tracker. Zauważono, że:
Wydaje się, że jest to problem dostawcy, a nie samego CPython. Ten sam problem występuje również w Pythonie 3.6 Ubuntu 16.10. Podnieść każdy wyjątek może powodować:
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
>>>
zobaczyć również https://bugs.launchpad.net/ubuntu/+source/python3.6/+bug/1631367.
Wreszcie sprawa została zamknięta z komentarzem
Tak, to wydaje się być brak sprzedawca za raportowanie infrastrukturę że jest wadliwa. Dlaczego chcą raportu dla każdego traceback na interaktywnym monitem jest poza mną, ale wydaje się, że są one, co próbują zrobić.
Moje pytania są teraz:
- Jak interpretować ten komentarz? Czy sprzedawca jest w tym przypadku PPA Jonathona Fernyhougha? I czy zmienił coś na kod Pythona, który rozprowadza, tak, że próbuje złożyć raport dla każdego wyjątku, który tworzy traceback?
- Do kogo należy powiadomić lub gdzie muszę zgłosić błąd, aby rozwiązać ten problem?
Polecam [deadsnakes ppa] (https://launchpad.net/~fkrull/+archive/ubuntu/deadsnakes). – hwjp
'sudo add-apt-repository ppa: fkrull/deadsnakes' to sposób na pójście imho. –