Python 3 no funciona

Python 3 no funciona

Últimamente instalé Python 3.5 desde la fuente, pero creo que hice algo mal durante la instalación o la vinculación. Después de esto tengo problemas para instalar cualquier paquete de Ubuntu. Por ejemplo, add-apt-repository no funciona, incluso después de reinstalar software-properties-common.

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

Además, apt-get install me dará estos errores.

$ 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)

Además, al intentar agregar ppa aparece el siguiente error

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

¿Qué está pasando? ¿Alguna idea?

Respuesta1

  1. Primero, necesitas restaurar el núcleo de Python 3:

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

    Si esto no funciona debido a paquetes a medio instalar que dependen de Python 3, descárguelos e instálelos manualmente:

    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. Instale el debsumspaquete y realice unaverificación de integridad del paquetepara verificar la integridad de los paquetes restantes y reinstalarlos si es necesario.

Respuesta2

Ubuntu viene con sus propias instalaciones de Python de las que depende para que funcionen las utilidades del sistema. Estas utilidades se basan en python, python2y python3apuntan a estas instalaciones del sistema. Desafortunadamente, al compilar/instalar Python desde el código fuente, el estándar make installinstala nuevos binarios python/ python2(para Python 2.x) o python3(para Python 3.x), lo que puede terminar ensombreciendo las instalaciones de Python del sistema y rompiendo cosas.

Una vez que haya reparado su sistema (es de esperar que la respuesta de David lo ayude a continuar), su Python compilado desde la fuente debe (re)instalarse con make altinstall, lo que renunciará python3e instalará el intérprete solo como la versión específica python3.5. Esta es la forma segura de instalar su propio Python sin interferir con los Python del sistema, ya que no ocultará ninguno de los comandos en los que confían las utilidades del sistema.

información relacionada