J'avais des versions Python de 2.7 et 3.5. Je voulais installer une version plus récente de Python qui est python 3.8. J'utilise Ubuntu 16.04 et je ne peux pas simplement désinstaller Python 3.5 en raison des dépendances. Donc, pour exécuter mes scripts, j'utilise python3.8 app.py
Aucun problème pour l'instant. Mais quand je veux installer de nouveaux packages via pip:
sudo ln -sf /usr/bin/python3.5 /usr/bin/python3
Il jette une erreur:
sudo update-alternatives --config python3
Jusqu'à présent, j'ai essayé:
AttributeError: module 'platform' has no attribute 'linux_distribution'
et a choisi python3.8 et exécutez la commande en commençant par python3 mais pas de chance.
Ensuite:
python3.8 -m pip install pylint
J'ai également essayé d'exécuter la commande en commençant par python3 mais cela ne fonctionnait pas non plus.
Comment puis-je résoudre ce problème afin de pouvoir installer de nouveaux packages dans ma nouvelle version de Python?
5 Réponses :
Vérifiez si l'installation de vos roues est ancienne. J'obtenais cette même erreur et je l'ai corrigée avec
python3.8 -m pip install --upgrade pip setuptools wheel
Pylint semble fonctionner sur python3.8
Python 3.8 a supprimé certaines choses. J'ai résolu mes problèmes avec pip (en particulier pip install) en installant pip avec curl
Ce qui a fonctionné pour moi était:
cd ~/Downloads
Téléchargement de get-pip.py
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
Ensuite, exécutez-le avec python 3.8:
python3.8 get-pip.py
Résolu pour moi.
Cela ressemble au moins à mon Ubuntu 16.04, pip est partagé pour toutes les versions de Python dans /usr/lib/python3/dist-packages/pip
.
Voici ce que j'ai fait pour le faire fonctionner à nouveau:
sudo apt remove python3-pip
sudo python3.8 -m easy_install pip
Vous voudrez peut-être réinstaller la version python 3.5 de pip avec sudo python3.5 -m easy_install pip
.
Fonctionne très bien sur ubuntu 16.04 + python3.8. Merci!
Si vous n'avez pas déjà "easy_install" sur votre système, vous voudrez exécuter "sudo apt-get python3-setuptools" (pour Ubuntu)
Le problème est que package.linux_distribution était obsolète à partir de Python 3.5 (?). et complètement supprimé pour Python 3.8.
Utilisez plutôt le package de distribution. Ce paquet ne fonctionne cependant que sous Linux.
J'ai rencontré ce problème après avoir installé OpenCobolIDE sur Linux Mint 20, après avoir mis à niveau Python au dernier niveau. ont soumis un correctif de code à l'auteur d'OpenCobolIDE pour examen et test. J'ai pu faire démarrer et exécuter l'EDI avec ce correctif.
Essentiellement, le correctif utilise le package de distribution s'il est disponible, sinon il utilise l'ancien package de plate-forme. Par exemple:
Ce code importe la distribution si disponible:
if using_distro: linux_distro = distro.like() else: linux_distro = platform.linux_distribution()[0]
Ensuite, vous pouvez tester la valeur de using_distro pour déterminer s'il faut obtenir le type de distribution Linux à partir du package ou de la distribution, par exemple:
import platform using_distro = False try: import distro using_distro = True except ImportError: pass
Un grand merci à modrobert pour avoir détecté mes fautes de frappe.
Dans mon cas, la suppression du package python-pip-whl
aidé:
curl https://bootstrap.pypa.io/get-pip.py | python3 pip install virtualenv
Il a également supprimé pip
et virtualenv
, j'ai donc dû les réinstaller:
apt-get remove python-pip-whl
Il semble que
pylint
ne soit pas encore mis à jour pour prendre en charge Python3.8.oreiller essayé, scipy, pandas, sélénium non d'entre eux. mais installé python 3.7 et tout va bien. Merci.
platform.linux_distribution
été supprimé dans Python 3.8. Voir: bugs.python.org/issue28167 , qui semble affecter les scripts de configuration / d'installation du paquet. Vous devrez peut-être signaler le problème aux packages respectifs (ou soumettre un PR pour le résoudre pour eux).En relation: github.com/PyCQA/pylint/issues/3291