Python 3 не работает

Python 3 не работает

Недавно я установил python 3.5 из исходников, но, кажется, я сделал что-то неправильно во время установки или компоновки. После этого у меня возникли проблемы с установкой любых пакетов Ubuntu. Например, add-apt-repository не работает даже после переустановки software-properties-common.

$ add-apt-repository 
bash: /usr/bin/add-apt-repository: /usr/bin/python3: bad interpreter: No such file or directory

Также apt-get install выдает мне эти ошибки

$ sudo apt-get install libraw-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  libraw-dev
0 upgraded, 1 newly installed, 0 to remove and 229 not upgraded.
3 not fully installed or removed.
Need to get 382 kB/391 kB of archives.
After this operation, 1,588 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ trusty/main libraw-dev amd64 0.15.4-1 [382 kB]
Fetched 382 kB in 0s (651 kB/s)    
Selecting previously unselected package libraw-dev:amd64.
(Reading database ... 295477 files and directories currently installed.)
Preparing to unpack .../libraw-dev_0.15.4-1_amd64.deb ...
Unpacking libraw-dev:amd64 (0.15.4-1) ...
Setting up python3.4 (3.4.3-1ubuntu1~14.04.5) ...
Could not find platform independent libraries <prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted
dpkg: error processing package python3.4 (--configure):
 subprocess installed post-installation script returned error exit status 134
Setting up python3-commandnotfound (0.3ubuntu12) ...
/var/lib/dpkg/info/python3-commandnotfound.postinst: 6: /var/lib/dpkg/info/python3-commandnotfound.postinst: py3compile: not found
dpkg: error processing package python3-commandnotfound (--configure):
 subprocess installed post-installation script returned error exit status 127
dpkg: error processing package software-properties-common (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
Setting up libraw-dev:amd64 (0.15.4-1) ...
Errors were encountered while processing:
 python3.4
 python3-commandnotfound
 software-properties-common
E: Sub-process /usr/bin/dpkg returned an error code (1)

Также попытка добавить ppa приводит к следующей ошибке

$ sudo add-apt-repository ppa:dhor/myway
sudo: unable to execute /usr/bin/add-apt-repository: No such file or directory

Что происходит, есть идеи?

решение1

  1. Сначала необходимо восстановить ядро ​​Python 3:

    sudo apt install -f --reinstall python3 python3.4 python3-minimal python3.4-minimal libpython3.4-minimal
    

    Если это не работает из-за наполовину установленных пакетов, зависящих от Python 3, загрузите и установите их вручную:

    cd /tmp
    apt-get download python3 python3.4 python3-minimal python3.4-minimal libpython3.4-minimal
    sudo dpkg -i *python3*.deb
    sudo apt install -f
    
  2. Установите debsumsпакет и выполнитепроверка работоспособности пакетадля проверки целостности оставшихся пакетов и переустановки их при необходимости.

решение2

Ubuntu поставляется со своими собственными установками Python, от которых он зависит для работы системных утилит. Эти утилиты полагаются на python, python2и , python3указывающие на эти системные установки. К сожалению, при сборке/установке Python из исходного кода стандарт make installустанавливает новые двоичные файлы python/ python2(для Python 2.x) или python3(для Python 3.x), которые могут в конечном итоге затмевать системные установки Python и ломать все.

После того, как вы исправите свою систему (ответ Дэвида должен, надеюсь, помочь вам в этом), ваш скомпилированный из исходников Python должен быть (пере)установлен с помощью make altinstall, что откажется от установки python3интерпретатора и установит только версию, специфичную для python3.5. Это безопасный способ установить собственный Python, не вмешиваясь в системные Python, поскольку он не будет затенять никакие команды, на которые полагаются системные утилиты.

Связанный контент