add-apt-repository โยนข้อผิดพลาดของ Python: UnicodeDecodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถถอดรหัสไบต์ 0xc5


27

พยายามติดตั้งแพ็คเกจ PHP5 ล่าสุดดังนั้นฉันจึงเพิ่ม repo (sudo add-apt-repository ppa: ondrej / php5) ฉันต้องการและนี่คือผลลัพธ์:

    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)

ทำงานบนเซิร์ฟเวอร์ Ubuntu 12.04


1
คุณเคยยุ่งกับการติดตั้ง python เริ่มต้น (เช่น symlinking python3.2 ถึง / usr / bin / python?) - apt ควรใช้ python2.7 ที่เป็นค่าเริ่มต้นของระบบใน 12.04 คุณสามารถเพิ่มผลลัพธ์ของls -l $(which python)การโพสต์ของคุณ?
ขับเหล็ก

lrwxrwxrwx 1 รูทราก 9 เม.ย. 10 2013 / usr / bin / python -> python2.7 ฉันติดตั้งแพ็กเกจเพื่อรับ apt-add-repo (ซึ่งยุ่งกับ Python iiirc)
James Heald

ในกรณีนี้ฉันไม่เข้าใจว่าทำไมจึงเห็นได้ชัดว่าใช้
python3.2

คำตอบ:


66

คุณสมบัติซอฟต์แวร์ทั่วไปเป็นรถดังนั้นหากมีเวลาโปรดรายงานสิ่งนี้ว่าเป็นข้อบกพร่องในคุณสมบัติของซอฟต์แวร์ทั่วไป

วิธีแก้ปัญหาที่ดีกว่านั้นชี้ให้เห็นในตัวติดตามปัญหาที่ใช้โลแคลยูนิโคดเฉพาะเมื่อเพิ่มที่เก็บ

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

6

ลองติดตั้งชุดภาษาซึ่งอาจแก้ไขปัญหาของคุณด้วยการเข้ารหัสเช่น

sudo apt-get install language-pack-en

สิ่งนี้จะให้การอัปเดตข้อมูลการแปลภาษาอังกฤษสำหรับแพ็คเกจที่รองรับทั้งหมด (รวมถึง Python)

ดู: UnicodeEncodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถเข้ารหัสอักขระได้

มิฉะนั้นตั้งค่าการตั้งค่าสถานที่ด้วยตนเองเช่น

$ 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

ที่เกี่ยวข้อง: ข้อผิดพลาดของสถานที่เกิดเหตุพร้อมกับ apt-get install


2

หากคุณอยู่ในนักเทียบท่าสิ่งนี้ใช้ได้กับฉัน:

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

หลังจาก:

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

0

สำหรับฉันเพิ่ม php5-compat ก่อน php แก้ปัญหาของฉันใน Ubuntu 16

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

แล้ว

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.