add-apt-kho ném lỗi Python: UnicodeDecodeError: 'ascii' giải mã không thể giải mã byte 0xc5


27

Đang cố gắng để cài đặt các gói PHP5 mới nhất và vì vậy tôi thêm repo (sudo add-apt-kho ppa: Ondrej / php5) Tôi cần và đây là kết quả:

    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)

Chạy trên máy chủ Ubuntu 12.04


1
Bạn đã sai lầm với việc cài đặt python mặc định (ví dụ, symlinking python3.2 đến / usr / bin / python?) - apt nên sử dụng python2.7 mặc định hệ thống trên 12.04. Bạn có thể thêm đầu ra của ls -l $(which python)bài viết của bạn?
Steeldo

lrwxrwxrwx 1 root root 09 Tháng tư 10 2013 / usr / bin / python -> python2.7 tôi đã cài đặt các gói để có được apt-add-repo (mà messes với Python iiirc)
James Heald

Trong trường hợp đó, tôi không hiểu tại sao rõ ràng là sử dụng python3.2 - xin lỗi
Steeldo

Câu trả lời:


66

Các thuộc tính chung của phần mềm là lỗi, vì vậy nếu có thời gian, vui lòng báo cáo đây là lỗi trong phần mềm-thuộc tính chung.

Một cách giải quyết tốt hơn đã được chỉ ra trong trình theo dõi vấn đề sử dụng ngôn ngữ unicode cụ thể khi thêm kho lưu trữ

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

6

Hãy thử cài đặt gói ngôn ngữ có thể sửa lỗi của bạn bằng mã hóa, ví dụ:

sudo apt-get install language-pack-en

Điều này sẽ cung cấp cập nhật dữ liệu dịch tiếng Anh cho tất cả các gói được hỗ trợ (bao gồm cả Python).

Xem: UnicodeEncodeError: 'ascii' codec không thể mã hóa ký tự .

Mặt khác, cài đặt cài đặt ngôn ngữ theo cách thủ công, ví dụ:

$ 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

Liên quan: lỗi ngôn ngữ với cài đặt apt-get


2

Nếu bạn đang ở trong docker, điều này làm việc cho tôi:

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

Một sau:

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

0

Đối với tôi, việc thêm php5-compat trước khi php giải quyết vấn đề của tôi trên Ubuntu 16.

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

và sau đó

sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.