add-apt-repository genera errore Python: UnicodeDecodeError: il codec 'ascii' non può decodificare il byte 0xc5


27

Sto cercando di installare gli ultimi pacchetti PHP5 e quindi aggiungo il repository (sudo add-apt-repository ppa: ondrej / php5) che mi serve e questo è il risultato:

    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)

In esecuzione su Ubuntu 12.04 Server


1
Hai incasinato l'installazione di Python predefinita (ad esempio, il collegamento simbolico di python3.2 a / usr / bin / python?) - apt dovrebbe usare il sistema predefinito python2.7 su 12.04. Puoi aggiungere l'output di ls -l $(which python)al tuo post?
Steeldriver,

lrwxrwxrwx 1 root root 9 aprile 10 2013 / usr / bin / python -> python2.7 Ho installato i pacchetti per ottenere apt-add-repo (che pasticcia con Python iiirc)
James Heald

In quel caso non capisco perché apparentemente stia usando python3.2 - scusa
steeldriver

Risposte:


67

Il software-properties-common è difettoso, quindi se hai tempo, ti preghiamo di segnalarlo come un bug in software-properties-common.

È stata evidenziata una soluzione alternativa nel tracker dei problemi che utilizza impostazioni internazionali unicode specifiche durante l'aggiunta del repository

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

6

Prova a installare un language pack che potrebbe correggere i tuoi problemi con la codifica, ad es

sudo apt-get install language-pack-en

Ciò fornirà aggiornamenti dei dati di traduzione in inglese per tutti i pacchetti supportati (incluso Python).

Vedi: UnicodeEncodeError: il codec 'ascii' non può codificare il carattere .

In caso contrario, impostare manualmente le impostazioni locali, ad es

$ 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

Correlato: errore di localizzazione con apt-get install


2

Se sei nella finestra mobile, questo ha funzionato per me:

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

Un dopo:

RUN apt-get update
RUN apt-get install -y php7.2

0

Per me l'aggiunta di php5-compat prima che php risolvesse il mio problema su Ubuntu 16.

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

e poi

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.