Problème similaire à # 5356 mais avec une version différente d'Ubuntu. La solution proposée dans #5356 ne résout pas le problème avec cette version d'Ubuntu
Après avoir installé Python 3.6 à partir du référentiel jonathonf dans une version propre d'Ubuntu, j'ai trouvé l'erreur suivante en essayant d'installer Pip
Notez qu'essayer d'installer Pip avec la version Python fournie par défaut (3.5.2 ) ne pose aucun problème.
python3.6 get-pip.py
Le message d'erreur :
Traceback (most recent call last):
File "get-pip.py", line 20649, in <module>
main()
File "get-pip.py", line 197, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
import pip._internal
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "get-pip.py", line 20649, in <module>
main()
File "get-pip.py", line 197, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
import pip._internal
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'
sudo apt-get install zlib1g-dev
(nécessaire pour compiler Python)sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
(requis par Pip pour faire des requêtes SSL)./configure
make
make install
Si vous vous souciez de lire la description de mon problème, vous constaterez que j'ai déjà regardé celui-là. La solution qui y est proposée n'est pas applicable avec cette version d'Ubuntu.
Il n'y a pas besoin d'être grossier. Mais pour moi compiler python sur votre n'est pas une solution.
Cette erreur d'importation en est la cause. J'essaierai de reproduire plus tard.
@jonbesga Merci pour la solution de contournement, rencontrant également ce problème avec exactement les mêmes versions de python 3.6 et ubuntu ...
@Tarliton Je suis d'accord que ce n'est pas une solution. Je vais le renommer comme solution de contournement.
En ce qui concerne l'impolitesse, désolé pour cela, mais me dire de voir le problème auquel j'ai déjà fait référence dans mon problème indique que vous avez posté le commentaire sans lire mon problème en premier lieu.
@jonbesga mon mauvais, mais j'aurais dû dire d'essayer d'exécuter les commandes mentionnées par l'autre problème.
Comme:
python -c "from distutils import sysconfig"
Je viens de le faire dans une machine virtuelle avec Ubuntu 16.04.2 et je n'ai eu aucun problème. Et pip installé.
J'essaierai plus tard avec 16.04.4.
Je peux confirmer qu'en 16.04.4,
python3.6 -c "from distutils import sysconfig"
Produit l'erreur suivante :
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'
J'ai essayé d'installer Python 3.6 à partir de ppa:deadsnakes/ppa
au lieu de ppa:jonathonf/python-3.6
et il installe correctement Pip. On dirait que la version de jonathonf est cassée d'une manière ou d'une autre.
Edit: Je viens de remarquer que certains commentaires dans la réponse Stack Overflow traitent de ce problème avec le référentiel jonathonf
Je peux confirmer que la suppression ppa:jonathonf/python-3.6
, puis l'ajout ppa:deadsnakes/ppa
et la réinstallation python3.6
résolvent ce problème sur Linux Mint 18.3.
Informations sur la suppression du PPA actuel : https://askubuntu.com/a/173209/823909
Ajout d'un nouveau PPA Python3.6 : https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get
@tomrunia Je vous suggère de changer le lien en https://askubuntu.com/a/310 car votre lien actuel ne pointe pas vers la meilleure réponse.
J'ai aussi vu une erreur similaire.
$ sudo python3.6 get-pip.py
Traceback (most recent call last):
File "get-pip.py", line 20061, in <module>
main()
File "get-pip.py", line 194, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
import pip
File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'
Cependant, en installant python3-distutils
, il a été possible d'éviter cette erreur.
sudo apt-get install python3-distutils
@wakiyamap Cela semble être une solution qui fonctionne pour # 5356 avec Ubuntu 18.04 LTS. Cependant, dans Ubuntu 16.04.4 LTS, ce package a été renommé et ne résout pas le problème.
@jonbesga J'ai utilisé cette version.
Ubuntu Xénial (16.04 LTS) (GNU/Linux 4.4.94-mainline-rev1 aarch64 )
ppa:jonathonf/python-3.6
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"
Le processeur est différent, il peut donc ne pas être lié à ce cas.
Pardon.
J'ai eu un problème similaire sur Ubuntu 16.04 (en particulier "depuis distutils import dist, sysconfig
ImportError: can not import name 'dist'") et "sudo apt-get install python3-distutils" l'ont résolu. Merci !
@RandyRomero @wakiyamap merci, apt install python3-distutils
fonctionne aussi pour moi.
@jonbesga Je suis sur 16.04.4 LTS et ça a marché. EDIT - J'utilise vagrant, j'ai fait une "mise à jour de la boîte vagabonde" il y a un instant, je suis sur 20180504)
Généralement, ce n'est pas un problème lié au pip si vous me le demandez, cela a plus à voir avec l'emballage d'Ubuntu
@wakiyamap Merci, votre solution apt install python3-distutils
a également fonctionné pour moi.
Je viens de passer à Python 3.6.5 sur Ubuntu 16.04.4 et les importations pour matplotlib et les appels à pip ont tous échoué avec la même erreur.
Ce correctif doit être largement diffusé.
Ce fil a été automatiquement verrouillé puisqu'il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau problème pour les bogues associés.
Commentaire le plus utile
J'ai aussi vu une erreur similaire.
Cependant, en installant
python3-distutils
, il a été possible d'éviter cette erreur.sudo apt-get install python3-distutils