J'ai récemment installé python 3.5 à partir du code source, mais je pense avoir commis une erreur lors de l'installation ou de la liaison. Après cela, j'ai des problèmes pour installer des paquets Ubuntu. Par exemple, add-apt-repository ne fonctionne pas, même après la réinstallation de software-properties-common.
$ add-apt-repository
bash: /usr/bin/add-apt-repository: /usr/bin/python3: bad interpreter: No such file or directory
En outre, apt-get install me donnera ces erreurs
$ 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)
Aussi, essayer d'ajouter ppa donne l'erreur suivante
$ Sudo add-apt-repository ppa:dhor/myway
Sudo: unable to execute /usr/bin/add-apt-repository: No such file or directory
Qu'est-ce qui se passe, des idées?
Tout d’abord, vous devez restaurer le noyau de Python 3:
Sudo apt install -f --reinstall python3 python3.4 python3-minimal python3.4-minimal libpython3.4-minimal
Si cela ne fonctionne pas à cause de packages à moitié installés dépendant de Python 3, téléchargez-les et installez-les manuellement:
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
Installez le package debsums
et effectuez une vérification de l'intégrité du package pour vérifier l'intégrité des packages restants et les réinstaller si nécessaire.
Ubuntu est livré avec ses propres installations de Python dont il dépend pour que les utilitaires système fonctionnent. Ces utilitaires reposent sur python
, python2
et python3
pointant vers ces installations système. Malheureusement, lors de la construction/installation de Python à partir des sources, le make install
standard installe une nouvelle python
/python2
(pour Python 2.x) ou python3
(pour Python 3.x) binaires, qui peuvent finir par masquer le système Python installations et autres problèmes.
Une fois que vous avez réparé votre système (la réponse de David devrait vous aider à le faire), votre Python compilé à partir de la source devrait alors être (ré) installé avec make altinstall
, ce qui vous évitera python3
et installez l'interpréteur uniquement en tant que python3.5
spécifique à la version. C’est le moyen sûr d’installer votre propre Python sans interférer avec les Pythons du système, car ils ne masqueront aucune des commandes utilisées par les utilitaires système.