
Ich habe vor Kurzem Python 3.5 aus der Quelle installiert, aber ich glaube, ich habe bei der Installation oder Verknüpfung etwas falsch gemacht. Danach habe ich Probleme, Ubuntu-Pakete zu installieren. Beispielsweise funktioniert add-apt-repository nicht, selbst nach der Neuinstallation von software-properties-common.
$ add-apt-repository
bash: /usr/bin/add-apt-repository: /usr/bin/python3: bad interpreter: No such file or directory
Außerdem gibt apt-get install diese Fehler aus
$ 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)
Außerdem führt der Versuch, ppa hinzuzufügen, zu folgendem Fehler
$ sudo add-apt-repository ppa:dhor/myway
sudo: unable to execute /usr/bin/add-apt-repository: No such file or directory
Was ist los, irgendwelche Ideen?
Antwort1
Zuerst müssen Sie den Kern von Python 3 wiederherstellen:
sudo apt install -f --reinstall python3 python3.4 python3-minimal python3.4-minimal libpython3.4-minimal
Wenn dies aufgrund halb installierter Pakete, die von Python 3 abhängen, nicht funktioniert, laden Sie diese manuell herunter und installieren Sie sie:
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
Installieren Sie das
debsums
Paket und führen Sie einenPaket-Sinnlichkeitsprüfungum die Integrität der verbleibenden Pakete zu überprüfen und sie bei Bedarf neu zu installieren.
Antwort2
Ubuntu wird mit seinen eigenen Python-Installationen ausgeliefert, von denen es abhängig ist, damit die Systemdienstprogramme funktionieren. Diese Dienstprogramme basieren auf python
, python2
und python3
verweisen auf diese Systeminstallationen. Leider make install
installiert der Standard beim Erstellen/Installieren von Python aus der Quelle neue python
/ python2
(für Python 2.x) oder python3
(für Python 3.x) Binärdateien, die die System-Python-Installationen überschatten und Dinge beschädigen können.
Sobald Sie Ihr System repariert haben (Davids Antwort sollte Ihnen dabei hoffentlich weiterhelfen), sollte Ihr aus dem Quellcode kompiliertes Python mit (neu)installiert werden , wobei der Interpreter nur als versionsspezifischer make altinstall
weggelassen und installiert wird. Dies ist die sichere Methode, Ihr eigenes Python zu installieren, ohne die System-Pythons zu beeinträchtigen, da es keine der Befehle überschattet, auf die sich die Systemdienstprogramme verlassen.python3
python3.5