add-apt-repository löst Python-Fehler aus: UnicodeDecodeError: Codec 'ascii' kann Byte 0xc5 nicht decodieren

27

Wenn ich versuche, die neuesten PHP5-Pakete zu installieren, füge ich das Repository hinzu (sudo add-apt-repository ppa: ondrej / php5), das ich brauche, und das ist das Ergebnis:

    Traceback (most recent call last):
  File "/usr/lib/python3.2/threading.py", line 740, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 141, in run
    self.add_ppa_signing_key(self.ppa_path)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 234, in add_ppa_signing_key
    tmp_export_keyring, signing_key_fingerprint, tmp_keyring_dir):
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 186, in _verify_fingerprint
    got_fingerprints = self._get_fingerprints(keyring, keyring_dir)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 178, in _get_fingerprints
    output = subprocess.check_output(cmd, universal_newlines=True)
  File "/usr/lib/python3.2/subprocess.py", line 516, in check_output
    output, unused_err = process.communicate()
  File "/usr/lib/python3.2/subprocess.py", line 811, in communicate
    stdout = _eintr_retry_call(self.stdout.read)
  File "/usr/lib/python3.2/subprocess.py", line 456, in _eintr_retry_call
    return func(*args)
  File "/usr/lib/python3.2/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 92: ordinal not in range(128)

Läuft auf Ubuntu 12.04 Server

James Heald
quelle
1
Haben Sie Probleme mit der Standard-Python-Installation (z. B. das Verknüpfen von Python3.2 mit / usr / bin / python?)? Apt sollte das System-Standard-Python2.7 von 12.04 verwenden. Können Sie die Ausgabe von ls -l $(which python)zu Ihrem Beitrag hinzufügen ?
Steeldriver
lrwxrwxrwx 1 root root 9 Apr 10 2013 / usr / bin / python -> python2.7 Ich habe die Pakete installiert, um apt-add-repo zu erhalten (was mit Python IIirc zu tun hat)
James Heald
In diesem Fall verstehe ich nicht, warum es anscheinend python3.2 verwendet - sorry
steeldriver

Antworten:

66

Die Software-Eigenschaften-Common ist fehlerhaft. Wenn Sie also etwas Zeit haben, melden Sie dies bitte als Fehler in der Software-Eigenschaften-Common.

Im Issue-Tracker wurde auf eine bessere Problemumgehung hingewiesen, bei der beim Hinzufügen des Repositorys ein bestimmtes Unicode-Gebietsschema verwendet wird

LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php5-5.6
oerdnj
quelle
6

Versuchen Sie, ein Sprachpaket zu installieren, das Ihre Codierungsprobleme behebt, z

sudo apt-get install language-pack-en

Dadurch werden Aktualisierungen der englischen Übersetzungsdaten für alle unterstützten Pakete (einschließlich Python) bereitgestellt.

Siehe: UnicodeEncodeError: Der Codec 'ascii' kann keine Zeichen codieren .

Andernfalls legen Sie die Ländereinstellungen manuell fest, z

$ locale -a | grep "^en_.\+UTF-8"
en_GB.UTF-8
en_US.UTF-8
$ export LC_ALL=en_GB.UTF-8
$ export LANG=en_GB.UTF-8

Verwandte: Gebietsschemafehler bei der Installation von apt-get

Kenorb
quelle
2

Wenn Sie in Docker sind, funktionierte dies für mich:

RUN LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php

Ein nach:

RUN apt-get update
RUN apt-get install -y php7.2
JRichardsz
quelle
0

Für mich hat das Hinzufügen von php5-compat vor php mein Problem auf Ubuntu 16 gelöst.

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php5-compat

und dann

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
Zareef Ahmed
quelle