Pip: L'objet _NamespacePath n'a pas de tri d'attribut

Créé le 5 janv. 2017  ·  99Commentaires  ·  Source: pypa/pip

  • Version de pépin : 9.0.1
  • Version Python : 3.6
  • Système d'exploitation : macOS

Il semble que pip via le vendeur Setuptools déclenche le problème signalé dans pypa/setuptools#885 (et peut probablement être impliqué dans les rapports en cours des utilisateurs rencontrant le problème). Voici un retraçage qui se produit lorsque pip freeze est invoqué par tox lors d'un test après avoir terminé l'étape develop-inst-no-deps .

Traceback (most recent call last):
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/bin/pip", line 7, in <module>
    from pip import main
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    <strong i="13">@_call_aside</strong>
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
    dist.activate(replace=False)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

J'imagine que la seule solution consiste à revendre les outils de configuration avec 31.0.1 ou une version ultérieure.

crash setuptools vendored dependency auto-locked

Commentaire le plus utile

J'ai essayé ces astuces, et pour l'instant rien n'a fonctionné, voici donc mon correctif robuste et utile :
dans /path/to/usr/local/python3.5/dist-packages/ , pour le fichier pip/_vendor/pkg_resources/__init__.py , ligne 2121, modifiez :

orig_path.sort(key=position_in_sys_path)

avec

try:
    orig_path.sort(key=position_in_sys_path)
except AttributeError:
    print("BUG: Is it bad if orig_path is not sorted correctly?")

Tous les 99 commentaires

J'ai remarqué qu'il y avait un bogue dans mon script setup.py. Le nom du package avait un "squelette" latent pour le nom au lieu du nom de projet approprié. Après avoir corrigé cela, le problème a disparu, probablement parce que le nom de projet approprié yg.piistore apparaît dans un ordre de tri différent de celui de skeleton . Néanmoins, je soupçonne que ce problème existera pour certains utilisateurs en fonction de l'ordre et des noms des packages et de leurs dépendances.

Ce problème n'est peut-être déclenché que si le package en cours d'installation n'est pas un package d'espace de noms, mais cela dépend des packages d'espace de noms.

J'ai la même erreur ( '_NamespacePath' object has no attribute 'sort' ). J'espère que les détails suivants de ma configuration seront utiles.

  • Version de pépin : 9.0.1
  • Version Python : 3.5
  • Version des outils de configuration : 32.3.1
  • Système d'exploitation : Ubuntu 16.04

Trois packages sont en jeu (bien que le premier ne soit probablement pas important). J'ai anonymisé les noms des packages.

  • acme.foo : C'est dans un répertoire sur mon disque dur, donc ce sont tous des chemins valides :

    • /path/to/acmefoo/ est la racine du projet

    • /path/to/acmefoo/acme/foo contient le code source du package

    • /path/to/acmefoo/acme/__init__.py contient (seulement) le texte : __import__('pkg_resources').declare_namespace(__name__)

    • /path/to/acmefoo/setup.py comprend packages=["acme", "acme.foo"], namespace_packages=["acme"] (et bien sûr utilise setuptools , pas distutils ).

  • acme.bar : C'est similaire, de plus son setup.py contient entrypoints={'console_scripts': ['ac_bar = acme.bar.main:main']} (bien qu'il ne soit pas nécessaire de le supprimer pour le reproduire).
  • acme.baz : C'est similaire sauf qu'il n'a pas de setup.py .

J'ai installé acme.foo et acme.bar directement en exécutant simplement pip install /path/to/acmefoo/ . Je change ensuite le répertoire de travail actuel en acme.baz , et l'exécution de pip freeze ou ac_bar donne l'erreur.

Quelques points supplémentaires :

  • La suppression de /path/to/acmebaz/acme/__init__.py (c'est-à-dire le package qui n'était PAS pip install ed) empêche l'erreur de se produire.
  • Passer par toute cette procédure avec setuptools==28.0.0 ne reproduit PAS l'erreur.
  • Si j'installe acme.foo et acme.bar avec setuptools==32.3.1 , puis rétrograder à setuptools==28.0.0 , puis exécuter pip freeze dans /path/to/acmebaz , J'obtiens l'erreur. Donc, ce qui est important, c'est la version de setuptools utilisée pour l'installation de pip , pas la version qui est actuellement active.

Si j'installe, puis déclasse setuptools, puis lance pip freeze, j'obtiens l'erreur.

Ce comportement implique presque certainement les modifications apportées à Setuptools v31 pour pypa/setuptools#250. En particulier, https://github.com/pypa/setuptools/commit/7e25fd910d1ff5259c0768d3b54a9bf03bce4279 a mis à jour la façon dont les fichiers nspkg-pth sont générés - c'est là que les objets _NamespacePath sont créés.

Mais ce n'est que dans Setuptools 31.0.1 que l'erreur sort été corrigée dans pkg_resources . Cependant, comme vous pouvez le voir dans mon retraçage, l'erreur se produit dans la version vendue de pkg_resources, qui n'a pas encore ce correctif.

Ce qui est intéressant et je ne comprends pas encore, c'est pourquoi la suppression de la déclaration de package d'espace de noms d'acme (pour baz) arrête l'erreur. Je ne sais pas ce qui se passe là-bas, mais cela mérite probablement une enquête plus approfondie.

Python version Python 3.6.0b2
Pip Version 9.0.1
Système d'exploitation Ubuntu 16.10 (4.9.0-1.1-liquorix-amd64 #1 ZEN SMP PREEMPT liquorix 4.9-3 (2017-01-07) x86_64 x86_64 x86_64 GNU/Linux)

```Traceback (appel le plus récent en dernier) :
Fichier "/usr/lib/python3.6/runpy.py", ligne 183, dans _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
Fichier "/usr/lib/python3.6/runpy.py", ligne 142, dans _get_module_details
return _get_module_details(pkg_main_name, erreur)
Fichier "/usr/lib/python3.6/runpy.py", ligne 109, dans _get_module_details
__import__(nom_paquet)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/__init__.py", ligne 26, dans
depuis pip.utils, importez get_installed_distributions, get_prog
Fichier "/usr/local/lib/python3.6/dist-packages/pip/utils/__init__.py", ligne 27, dans
depuis pip._vendor importer pkg_resources
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 3018, dans
@_call_aside
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 3004, dans _call_aside
f( args, * kwargs)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 3046, dans _initialize_master_working_set
dist.activate(replace=False)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 2578, dans activate
declare_namespace(pkg)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 2152, dans declare_namespace
_handle_ns(packageName, path_item)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 2092, dans _handle_ns
_rebuild_mod_path(chemin, nom_paquet, module)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 2121, dans _rebuild_mod_path
orig_path.sort(key=position_in_sys_path)
AttributeError : l'objet '_NamespacePath' n'a pas d'attribut 'sort'
Erreur dans sys.excepthook :
Traceback (appel le plus récent en dernier) :
Fichier "/usr/lib/python3/dist-packages/apport_python_hook.py", ligne 63, dans apport_excepthook
à partir d'apport.fileutils, importez probablement_packaged, get_recent_crashes
Fichier "/usr/lib/python3/dist-packages/apport/__init__.py", ligne 5, dans
de apport.report import Rapport
Fichier "/usr/lib/python3/dist-packages/apport/report.py", ligne 30, dans
importer apport.fileutils
Fichier "/usr/lib/python3/dist-packages/apport/fileutils.py", ligne 23, dans
depuis apport.packaging_impl importer impl comme emballage
Fichier "/usr/lib/python3/dist-packages/apport/packaging_impl.py", ligne 23, dans
importer apt
Fichier "/usr/lib/python3/dist-packages/apt/__init__.py", ligne 23, dans
importer apt_pkg
ModuleNotFoundError : aucun module nommé 'apt_pkg'

L'exception d'origine était :
Traceback (appel le plus récent en dernier) :
Fichier "/usr/lib/python3.6/runpy.py", ligne 183, dans _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
Fichier "/usr/lib/python3.6/runpy.py", ligne 142, dans _get_module_details
return _get_module_details(pkg_main_name, erreur)
Fichier "/usr/lib/python3.6/runpy.py", ligne 109, dans _get_module_details
__import__(nom_paquet)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/__init__.py", ligne 26, dans
depuis pip.utils, importez get_installed_distributions, get_prog
Fichier "/usr/local/lib/python3.6/dist-packages/pip/utils/__init__.py", ligne 27, dans
depuis pip._vendor importer pkg_resources
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 3018, dans
@_call_aside
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 3004, dans _call_aside
f( args, * kwargs)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 3046, dans _initialize_master_working_set
dist.activate(replace=False)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 2578, dans activate
declare_namespace(pkg)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 2152, dans declare_namespace
_handle_ns(packageName, path_item)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 2092, dans _handle_ns
_rebuild_mod_path(chemin, nom_paquet, module)
Fichier "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", ligne 2121, dans _rebuild_mod_path
orig_path.sort(key=position_in_sys_path)
AttributeError : l'objet '_NamespacePath' n'a pas d'attribut 'sort'
```

Je reçois également cette erreur. J'ai essayé de rétrograder à setuptools v28 mais cela n'a pas résolu. De plus, cette erreur n'apparaît pas dans Python 3.5.2. Mais maintenant, j'ai remarqué que pip n'a pas cette erreur dans Heroku. J'ai une application Django fonctionnant sur Python 3.6 dans Heroku et elle n'a jamais de problèmes

Pour moi, la solution était d'abandonner les packages d'espace de noms ; acme/foo est maintenant acme_foo . Il semble y avoir quelques cas de coin enfouis profondément dans l'infrastructure Python (le manque de support Cython / module d'extension en est un autre) et ce fut la goutte d'eau finale.

Ce problème est impliqué dans ces tests qui échouent . Bien que j'aie supposé ci-dessus que le problème pourrait être isolé des packages non-namespace nécessitant des packages d'espace de noms, cet exemple est celui d'un package d'espace de noms ( pmxbot.rss ) nécessitant un autre package d'espace de noms dans le même espace de noms ( pmxbot ).

Le problème avec ces tests échoués a été corrigé en mettant à

@jaraco J'ai rencontré la même question, et je ne sais pas comment y remédier ? Et mon pip ne fonctionne pas pour tout installer. Aide-moi ! :so:

Python 3.5.2
Pépin 9.0.1
Outils 34.2.0 configuration

>> pip3
Traceback (most recent call last):
  File "/usr/bin/pip3", line 7, in <module>
    from pip import main
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    <strong i="15">@_call_aside</strong>
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_t
    dist.activate(replace=False)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

Idem ici, mon pip semble cassé avec la même erreur. J'utilise une installation utilisateur de pip :

~Retraçage PythonTraceback (appel le plus récent en dernier) :Fichier "/home/stavros/.local/bin/pip", ligne 7, dans




















J'ai remarqué que ce problème deviendra plus répandu à mesure que de plus en plus de packages (roues en particulier) seront publiés à l'aide de versions ultérieures de setuptools. J'ai fait plus d'analyses dans le problème en amont, mais je n'ai pas de solution à part mettre à jour pkg_resources dans pip.

Obtenir la même erreur sur les spécifications suivantes :

  • Bureau Ubuntu 16.10
  • apt installer python3-pip
Traceback (most recent call last):
  File "/python/v3/Libraries/pip/Upgrade.py", line 4, in <module>
    import pip
  File "/home/eric/.local/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/home/eric/.local/lib/python3.5/site-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    <strong i="9">@_call_aside</strong>
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
    dist.activate(replace=False)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

Code Python utilisé pour mettre à niveau les packages :

#!/usr/bin/python3
# -*- coding: utf8 -*-

import pip
import subprocess

try:
    for distribution in pip.get_installed_distributions():
        subprocess.call('python3 -m pip install --upgrade ' + distribution.project_name, shell=True)
except OSError:
    print('Permission denied')

Mon pip fonctionne à nouveau après l'installation de conda , voir https://conda.io/docs/install/quick.html et https://doc.scrapy.org/en/latest/intro/install.html# anaconda à essayer.

Je trouve que ce problème devient de plus en plus répandu et devient reproductible de manière fiable lors de l'exécution de pip install partir d'un répertoire contenant un package d'espace de noms lorsque d'autres packages de cet espace de noms sont installés et que l'un de ces packages a un -nspkg.pth de build sous un setuptools tardif.

Edit : le problème qui m'a amené à poster ceci s'est à nouveau avéré être résolu en corrigeant une faille dans le package en cours de test.

@jaraco m'a indiqué ici car mes problèmes (#4309) ressemblent beaucoup à ceux-ci.

Cependant, dans ce cas, j'essaie d'installer un package namespace-d (minchin.releaser) qui dépend d'un autre package namespace-d dans le même espace de noms (minchin.text).

J'ai exactement le même problème, mais pas besoin d'essayer des choses compliquées, même demander la version de pip3 échoue :

$ python3 /usr/local/bin/pip3 --version
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 7, in <module>
    from pip import main
  File "/usr/local/lib/python3.5/dist-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/usr/local/lib/python3.5/dist-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    <strong i="6">@_call_aside</strong>
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
    dist.activate(replace=False)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

J'ai essayé de réinstaller avec apt-get fois python3-pip et python3-setuptools , mais cela ne change rien.

Un comportement encore plus étrange est que si j'exécute le script pip3 avec un autre interpréteur, par exemple ipython3 , cela fonctionne !

$ ipython3 /usr/local/bin/pip3 -- --version
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)

@jaraco Vendre un setuptools >= 31.0.1 résoudrait-il ce problème ?

@pradyunsg dans mon cas, les outils de configuration des fournisseurs 34.3.0 l'ont corrigé pour moi.

Oui. Voir eaccb88.

@jaraco C'est en master ? Je ne vois pas l'entrée de modification correspondante.

Existe-t-il une version pip que nous connaissons avant que ce problème ne se pose ? Il serait utile de pouvoir conseiller aux utilisateurs de " rétrograder vers pip XYZ jusqu'à ce que ce problème soit marqué comme résolu "

voir #4330

sudo apt-get upgrade python-setuptools

alternativement, essayez

sudo dpkg --get-selections | grep -E "^python" | grep install | cut -f1 | xargs apt-get --reinstall -y install

J'ai essayé ces astuces, et pour l'instant rien n'a fonctionné, voici donc mon correctif robuste et utile :
dans /path/to/usr/local/python3.5/dist-packages/ , pour le fichier pip/_vendor/pkg_resources/__init__.py , ligne 2121, modifiez :

orig_path.sort(key=position_in_sys_path)

avec

try:
    orig_path.sort(key=position_in_sys_path)
except AttributeError:
    print("BUG: Is it bad if orig_path is not sorted correctly?")

Peut-il y avoir un pip 9.0.2 avec ce correctif uniquement - une version plus récente des outils de configuration vendus?

Une façon de le faire serait de bifurquer vers 9.0.1, de choisir le correctif mentionné par @jaraco et de le marquer 9.0.2, de le publier et de le fusionner à nouveau dans master.

/cc @dstufft @xavfernandez

@Naereen faire taire l'erreur peut causer des problèmes si un autre bogue survient, mieux vaut également imprimer str(e)

@LoganDark bien sûr, mon "correctif" n'était pas destiné à être fusionné ou utilisé, à peine juste pour avoir une commande pip en attendant une solution plus propre.

@Naereen Bien sûr. J'ai juste rm -rf ~/.local/lib/python3.6/site-packages/* et ça a marché.

Bien sûr, ce n'est peut-être pas la solution pour tout le monde, car ils peuvent avoir certains packages installés qu'ils ne veulent pas retirer. Je l'ai fait car je peux facilement réinstaller tout ce que j'ai perdu

Impossible de faire quoi que ce soit avec pip dans mon virtualenv. J'ai même eu l'erreur en tapant simplement pip .

Un easy_install pip dans mon virtualenv l'a rendu fonctionnel à nouveau, bien que l'erreur soit toujours apparue à la fin d'une installation.

C'est en maître ?

Non. C'était dans une branche appelée hotfix/issue-4216 qui a été supprimée. Il semble que b005a9b atteigne le même objectif.

Existe-t-il une version pip que nous connaissons avant que ce problème ne se pose ?

Pas vraiment. Comme mentionné ci-dessus , le problème est survenu lorsque Setuptools 31 a introduit la prise en charge de setup.py develop sur les packages d'espace de noms, ce qui nécessitait l'extension des fichiers -nspkg.pth. Ce changement signifiait essentiellement que les anciennes versions de pkg_resources ne prenaient pas en charge ce nouveau format et étoufferaient.

Il est concevable qu'il existe une ancienne version de pip qui vend une ancienne version de setuptools avant l'endroit où cet appel de tri a été effectué.

Peut-il y avoir un pip 9.0.2 avec ce correctif uniquement - une version plus récente des outils de configuration vendus?

C'est ce que j'ai proposé avec la branche hotfix, qui a été supprimée sans commentaire. Si c'était mon projet, je voudrais obtenir un correctif dès que possible.

@palewire Merci d'avoir signalé cela.

Cela dit, vous voulez généralement faire le lien dans l'autre sens... Cela n'a pas beaucoup d'importance, je suppose.

Désolé d'être un spammeur !

Pour que nous puissions planifier notre réponse là-bas, avez-vous une idée du moment où cela sera corrigé ? Y a-t-il un moyen que nous pourrions aider à le faire avancer?

Je vais essayer de couper un 9.0.2 ce week-end.

Je ne veux pas être ennuyeux ici, mais y a-t-il une mise à jour sur ce problème ? J'ai un environnement CI utilisant tox , et il échoue lorsque j'essaie de compiler pour python3.6. Localement, je peux le faire fonctionner en activant l'environnement python3.6 et en exécutant manuellement easy_install pip . Mais je n'ai pas été en mesure de trouver une solution de contournement pour l'environnement CI.

Vous avez toujours un pépin cassé ici et la solution de contournement de Naereen ne fonctionne pas dans tous les scénarios (merci d'avoir essayé). Des progrès @dstufft ?

SOS : Les gars, j'ai un gros problème, s'il vous plaît, aidez-moi ! lorsque j'ai essayé d'activer mon virtualenv, j'ai eu les erreurs de longue ligne :

Traceback (most recent call last): File "/anaconda/bin/conda", line 6, in <module> sys.exit(conda.cli.main()) File "/anaconda/lib/python3.6/site-packages/conda/cli/main.py", line 151, in main activate.main() File "/anaconda/lib/python3.6/site-packages/conda/cli/activate.py", line 118, in main from conda.utils import shells File "/anaconda/lib/python3.6/site-packages/conda/utils.py", line 13, in <module> from .gateways.disk.read import compute_md5sum File "/anaconda/lib/python3.6/site-packages/conda/gateways/disk/read.py", line 22, in <module> from ...models.channel import Channel File "/anaconda/lib/python3.6/site-packages/conda/models/channel.py", line 9, in <module> from ..base.context import context File "/anaconda/lib/python3.6/site-packages/conda/base/context.py", line 19, in <module> from .._vendor.auxlib.path import expand File "/anaconda/lib/python3.6/site-packages/conda/_vendor/auxlib/path.py", line 8, in <module> import pkg_resources File "<frozen importlib._bootstrap>", line 961, in _find_and_load File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 646, in _load_unlocked File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2985, in <module> File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2971, in _call_aside File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 3013, in _initialize_master_working_set File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2544, in activate File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2118, in declare_namespace File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2058, in _handle_ns File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2087, in _rebuild_mod_path AttributeError: '_NamespacePath' object has no attribute 'sort'

python 3.6
pépin 9.0.1
mac 10.6

@ Mika15 Ceci doit être corrigé dans la version en attente de pip 9.0.2

À partir du ticket associé, vous pouvez tester le dernier code maître :

pip install -I https://github.com/pypa/pip/archive/master.zip#egg=pip

_Remarque :_ Sur Ubuntu, j'ai dû supprimer les packages de mon site utilisateur avant d'exécuter la commande ci-dessus ( rm -r ~/.local/lib/python3.5/site-packages )

Dans mon cas, je n'ai pas du tout pu exécuter une commande pip . La seule solution qui a finalement fonctionné consistait à supprimer pip des packages dist, puis :

git clone https://github.com/pypa/pip.git
cd pip
python3.6 setup.py install

Puis ça a commencé à fonctionner

@cas-- pourriez-vous fournir une indication d'attente ? La dernière version mineure 9 a pris 4 jours ;) .

Même erreur sous Windows, j'essaie d'utiliser Anaconda avec PyCharm, l'erreur exacte apparaît lors de la création d'un environnement virtuel. Je suppose que c'est similaire au problème de @ Mika15 .

@cas-- une mise à jour sur la version 9.0.2 ?

Je ne suis pas un développeur pour ce projet. J'expliquais la situation pour les messages « moi aussi ».

Pip mis à niveau pour maîtriser pip 10.0.0.dev0 (python 3.6) mais il échoue toujours (package dvc ).
La mise setuptools niveau de

Dans Nixpkgs, nous avons résolu le problème en mettant à pkg_resources du vendeur vers la version fournie par setuptools dans 36.0.1.

La solution de @ZhukovGreen a fonctionné pour moi. sous /usr/local/lib/python3.5/dist-packages, j'ai fait

sudo rm -r  pip 
sudo rm -r pip-9.0.1.dist-info

J'ai fait un correctif pour pip 9.0.1, mettant à jour le setuptools du vendeur, ce qui résoudrait ce problème. Si quelqu'un veut récupérer un pip corrigé, vous pouvez le récupérer sur https://github.com/pradyunsg/pip/tree/hotfix/9.0.2.

pip install --ignore-installed --pre "https://github.com/pradyunsg/pip/archive/hotfix/9.0.2.zip#egg=pip"

PS : je ne suis pas un développeur principal de pip, juste quelqu'un qui a du temps libre pour faire ce patch.

J'ai eu la même erreur sur 2 ordinateurs sur 3, mais uniquement lors de la mise à jour des packages à partir de pycharm 2017.1.4. Depuis la ligne de commande, pip fonctionne sans aucun problème. J'utilise:

Windows 7.1/8.1 64 bits
Python 3.6.1 64 bits
pépin 9.0.1
outils de configuration 36.0.1

Des idées?

Voir : https://youtrack.jetbrains.com/issue/PY-24682

salut les gars,
Je travaille pour ma thèse de licence avec google home, mon professeur veut que j'arrête mon projet, j'y travaille depuis avril. s'il vous plaît aidez-moi, sinon je dois retarder mon diplôme de six mois. personne ne pouvait m'aider jusqu'à présent. Je reçois ceci : AttributeError: l'objet '_NamespacePath' n'a pas d'attribut 'sort'
J'ai lu tout ce que vous avez écrit lors de cette discussion et d'autres avec des problèmes et des utilisateurs similaires. J'ai essayé tous les codes suggérés. mais toujours recevoir des erreurs ou une erreur de syntaxe ou une commande introuvable. Je travaille sur Mac. mais essayé sur Windows et des amis ont essayé et toujours le même problème. Je suis vraiment mauvais en codage et je n'ai aucune expérience. mais j'ai vraiment besoin de finir ce semestre.
J'ai essayé les tutoriels et j'ai fait étape par étape tout ce qu'ils ont fait. mais cela a fonctionné pour eux, mais pas pour moi.
screen shot 2017-06-24 at 01 59 02

s'il vous plaît, j'ai besoin de soutien, j'apprécierais vraiment. Merci beaucoup d'avance.

@Fouf92 Avez-vous lu mon commentaire ci-dessus ? Dans ce document, j'ai dit que je n'avais pas l'erreur si je créais un nouvel environnement virtuel et rétrogradais les outils de configuration à 28.0.0 avant d' installer des packages. Si vous ne l'avez pas déjà fait, je vous suggère d'essayer. Aucune garantie cependant !

Hey @arthur-tacca, je suis vraiment nouveau avec tout ça. Pourriez-vous s'il vous plaît me donner étape par étape comment faire vos suggestions que vous avez écrites ci-dessus s'il vous plaît? J'ai lu tellement de forums et j'ai copié n'importe quel code qui semble logique maintenant je suis confus 🙈
Cela m'aiderait vraiment. Merci d'avance!

J'ai installé la dernière version de picharm, mais je ne sais pas quoi en faire, désolé

@Fouf92 Il existe quelques solutions de contournement répertoriées dans ce problème.

Le moyen le plus simple serait d'installer la version de développement de pip (exécutez la commande suivante dans le terminal, en supposant que git soit installé) :

git clone https://github.com/pypa/pip.git
cd pip
python3.6 ./pip/__main__.py install .

Je peux vérifier que cela installe une version de pip qui a le correctif pour ce problème.

salut @pradyunsg merci beaucoup pour votre réponse rapide et votre aide, j'y travaille.
J'ai fait votre étape et j'ai tout installé avec succès.
Mais quand je lance ce code :
python3 -m pip installer google-assistant-sdk[samples]

même problème, je ne sais vraiment pas ce que je fais mal.

Si l'un d'entre vous peut m'aider, nous pouvons utiliser Team Viewer et échanger des contacts, j'apprécierais vraiment. mon professeur veut arrêter ma thèse à la fin de cette semaine et je perdrais beaucoup de temps et d'argent. pour moi c'est vraiment urgent. s'il vous plaît les gars, et merci d'avance !!

screen shot 2017-06-26 at 14 12 48

Hé, c'est encore moi, désolé de vous déranger encore une fois. J'ai lu tout ce qui est dit dans les étiquettes et j'ai essayé les étapes suggérées par les gars, mais toujours le même problème.
J'ai besoin de ceci : python3 -m pip install google-assistant-sdk[samples]
mais quoi que j'essaye, je reçois toujours ce que j'ai posté ci-dessus. aidez-moi s'il vous plaît, je n'ai que le temps jusqu'à vendredi, sinon je dois retarder mon diplôme de six mois et je perdrai mon offre d'emploi dans une très bonne entreprise...

@Fouf92 C'est ma suggestion.

1) Installez virtualenv. Voici un lien sur la façon de l'installer pour mac : http://sourabhbajaj.com/mac-setup/Python/virtualenv.html

virtualenv crée une "boîte" dans laquelle vous installez des packages python. Lorsque vous installez tout directement sur votre système, vous courez le risque d'interférences, et lorsque quelque chose se brise, cela se brise à l'échelle du système.

2) créer un environnement comme celui-ci :

virtualenv --python=`which python3` myenvname

Cela crée un env python 3 pour vous. Tout ce que vous faites ici est python 3.

3) Activez votre virtualenv :

cd myenvname
source bin/activate

Vous saurez que vous êtes dans votre environnement virtuel car votre terminal a votre nom virtualenv entre parenthèses à gauche

(myenvname) Firass-MacBook-Pro: .....

4) pip install google-assistant-sdk[samples]

Cela devrait s'installer avec succès. Je viens de le tester de mon côté et je n'ai aucun problème.

Hey @RomHartmann Merci beaucoup pour votre soutien, cela a très bien fonctionné et si facile. J'ai essayé pendant si longtemps ! J'apprécie vraiment que vos explications soient si détaillées merci beaucoup!

Ma prochaine étape est malheureusement ma prochaine impasse. Je sais que je dérange tout le monde ici, je ne le ferais vraiment pas, si ce n'était pas si important pour moi de faire en sorte que cela fonctionne.
Il s'agit de l'étape suivante : python3 -m googlesamples.assistant.auth_helpers –client-secrets path\to\your\client_secret_XXX.apps.googleusercontent.com.json

il y a un retour : aucun module nommé googlesamples.assistant.auth_helpers
J'ai donc cherché sur Google et essayé les étapes suggérées :
pip install --upgrade google-auth-oauthlib[tool]
google-oauthlib-tool --client-secrets path/to/client_secret_XXXXX.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless

le premier a bien fonctionné, le second malheureusement pas. J'ai lu dans un autre forum que si c'était dans le terminal, je devrais le faire sans --headless.

screen shot 2017-06-27 at 23 34 11

@Fouf92 Veuillez créer une question Stack Overflow et la lier ici. Ce n'est pas le lieu d'en discuter.

ok désolé et merci voici la question que j'ai créée:
https://stackoverflow.com/q/44799488/8225350

@pradyunsg Merci pour votre patch en attendant que pip master soit déployé dans une nouvelle version. M'a aidé avec la situation (informations juste au cas où cela aiderait d'autres python 3.5.2 avec setuptools==36.0.1 wheel==0.29.0 ).

  • Windows 7x64
  • Python 3.6.2 x64
  • Pip 9.0.1
  • Outils de configuration 36.2.7

J'ai eu le même problème en essayant d'installer tensorflow via pip. L'une de ses dépendances a complètement cassé l'installation de pip et je ne pouvais rien installer ou désinstaller avec pip ou manuellement avec setuptools

Testé la version pip corrigée que @pradyunsg et cela a parfaitement fonctionné. Merci!

uname -a affiche les éléments suivants :
Linux greenstone 4.4.0-64-generic #85~14.04.1-Ubuntu SMP Mon Feb 20 12:10:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

lsb_release -a montre ce qui suit
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty

Versions du système d'exploitation :

  • pépin (9.0.1)
  • outils de configuration (28.8.0)
  • Python 2.7.6

Dans mon environnement virtuel, je suis tombé sur le problème _NamespacePath object has no attribute sort .
J'ai dû activer mon environnement virtuel et mettre à jour pip et setuptools. Maintenant, je peux installer sphinxcontrib.youtube

Environnement virtuel :
pip list afficher :

  • pépin (9.0.1)
  • outils de configuration (36.2.7)

python --version montre ceci :

  • Python 3.6.1

La meilleure solution consiste à mettre à niveau les outils de configuration.
Si cela ne fonctionne pas, installez/mettez à niveau pip et setuptools dans votre environnement virtuel et réessayez.

Avoir la même erreur, la mise setuptools niveau de pip ne change rien, et la version corrigée de pip fournie plus tôt donne la même erreur.

J'ai trouvé ce tutoriel et il a sauvé mon projet de fin d'études :
https://m.youtube.com/watch?v=EfUpOpXDdLk

Cela a résolu tous mes problèmes. J'avais besoin d'acheter un Raspberry Pi sur mon mac j'ai eu tellement d'erreurs mais avec des raps 0 problèmes. Mais essayez ce tutoriel, cela pourrait fonctionner sans Raspberry PI

Le correctif de

@dstufft ISTM cela a été "résolu" par # 4712. (Je ne sais pas si vous attendez qu'une nouvelle version de pip sorte pour résoudre les problèmes.)

@dstufft Comment puis-je procéder à la mise à niveau de pip et pip3 sur Ubuntu 16.04 pour résoudre ce problème ? Je viens d'exécuter apt update && apt upgrade en vain.

il suffit de mettre à niveau vers la dernière version ;

python : 3,6
pip : 10.0.0.dev0
outils de configuration : 36.7.2

@jhpratt Vous devriez poser cette question sur un forum Ubuntu, car ils maintiennent les référentiels apt . Alternativement, vous pouvez utiliser des installations virtualenv ou --user pour contourner l'installation du système.

Salut, j'ai la même erreur sur mac OS, Python 3.5.3, pip 9.0.1 et setuptools 38.2.3.

Pour l'instant j'ai simplement remplacé la ligne défaillante dans /anaconda/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py par un bloc Try / Except...

Faire pip install --upgrade pip setuptools n'a pas fonctionné !

@massimilianocomin Le problème est que pip possède une ancienne version de setuptools . Vous pouvez installer pip partir des sources si vous le souhaitez. La meilleure solution consiste à trouver le fichier easy-install.pth dans votre répertoire site-packages/ et à le supprimer.

@dhermes Merci pour votre aide ! Malheureusement, la suppression de easy-install.pth n'a pas fonctionné, j'obtiens toujours l'erreur lors de l'utilisation de pip .

@massimilianocomin C'est malheureux. Trois choses me viennent à l'esprit comme problèmes possibles :

  • Il existe un autre répertoire site-packages lequel pip recherche et qui contient également easy-install.pth (très probablement)
  • Il peut y avoir un autre fichier .pth problématique dans votre site-packages (moins probable)
  • La suppression de easy-install.pth a cassé quelque chose d'autre (peu susceptible de casser pip )

@dhermes Il existe en effet un autre site-packages situé à .local/lib/python3.5/site-packages . Si je lance la commande find . -name '*.pth' il n'y a qu'une seule correspondance : ./matplotlib-2.1.0-py3.5-nspkg.pth . Dois-je supprimer celui-ci ?

Il y a aussi d'autres .pth dans anaconda/lib/python3.5/site-packages :
./aeosa.pth
./easy-install.pth
./setuptools.pth
./Sphinx.pth

Bonne information! IIUC, seuls les fichiers .pth terminant par nspkg.pth sont ajoutés par pip et les autres peuvent confondre / casser pip==9.0.1

Ok donc j'ai supprimé tous les fichiers .pth sauf matplotlib-2.1.0-py3.5-nspkg.pth mais j'obtiens toujours le message d'erreur lors de l'installation/désinstallation d'un module aléatoire avec pip . Dois-je essayer de supprimer ce dernier aussi ?

@massimilianocomin À ce stade, je suis dépassé et je ne serais pas en mesure d'aider sans accès à votre machine. Désolé.

@dhermes Merci pour votre aide en tout cas. Est-ce que cela résoudrait le problème si je réinstallais ma distribution (conda/pip + tous les modules) depuis scracth ?
Avez-vous des recommandations sur ce que je devrais/ne devrais pas faire ? (ex. versions de pip/setuptools à éviter, ..)

Avez-vous des recommandations sur ce que je devrais/ne devrais pas faire

  • Vous ne devez installer que les packages d'espace de noms avec pip (par exemple, google-cloud-datastore remplit les espaces google.cloud noms google et google.cloud )
  • Vous ne devez setup.py install
  • Je ne sais pas ce que conda install fera mais je suppose qu'il utilise setup.py install

Salut!

Permettez-moi d'essayer de résumer le problème afin que nous puissions éviter davantage de comment puis-je
questions sur la mise à niveau...

Ce problème est causé par un bogue dans pkg_resources que pip porte à l'intérieur (pour
éviter les problèmes d'amorçage). Cela signifie qu'il n'y a aucun moyen de contourner cela
problème sans patcher pip pour utiliser une version plus récente de celui-ci où se trouve ce bogue
fixé. Il n'y a pas d'autres alternatives.

La mise à niveau des outils de configuration (qui fournit pkg_resources) n'affecte pas le pip
car pip utilise sa copie interne de pkg_resources malgré tout.

Du haut de ma tête, il y a au moins 2 endroits pour obtenir un pip a un plus récent
pkg_ressources :

  • La version actuelle en développement de pip.

  • Il y a une branche publiée plus haut dans ce fil qui est essentiellement un
    patch au-dessus de pip 9.0.1. (avertissement - c'est sur ma fourchette, je vais garder le
    branche pendant au moins un mois après la prochaine version majeure de pip)

Ce ne sont pas les seuls endroits. Je sais qu'il y a plus et les parties relavent
aurait posté un commentaire sur ce fil, probablement.

Pour installer à partir de l'un des éléments ci-dessus sur votre système, il suffit de
mise à niveau d'un package à partir du contrôle de source. Tu peux lire la doc pour ça,
droit? ;)

Si je me souviens bien, c'est pip install git+@branche

Et je pense que c'est à peu près tout. Patch pip pour utiliser un nouveau pkg_resources et
vous serez prêt à partir.

PS : Il est 2h du matin. Je devrais dormir.

Le mar. 28 novembre 2017, 21:52 mcomin, [email protected] a écrit :

Salut, j'ai la même erreur sur mac OS, Python 3.5.3, pip 9.0.1 et
outils de configuration 38.2.3.

Pour l'instant je remplace simplement la ligne défectueuse dans
/anaconda/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py
par un bloc Try / Except...

Faire pip install --upgrade pip setuptools n'a pas fonctionné !

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/pypa/pip/issues/4216#issuecomment-347578070 , ou couper le son
le fil
https://github.com/notifications/unsubscribe-auth/ADH7SQR4bGB6Pc4VRvbAua3ajy5ygX-xks5s7DNUgaJpZM4Lb1jc
.

Je crois que pip a un processus documenté pour développer une dépendance . Et j'allais suggérer que vous utilisiez ce processus pour développer pkg_resources, mais maintenant je vois que c'est une proposition tout ou rien... vous ne pouvez donc pas simplement fournir des outils de configuration de fournisseur. Je suppose que vous êtes coincé à corriger la version vendue ou à tout développer.

Le mer. 29 novembre 2017, 03:06 Jason R. Coombs, [email protected]
a écrit:

Je crois que pip a un processus documenté pour développer une dépendance
https://github.com/pypa/pip/blob/master/src/pip/_vendor/README.rst#debundling .
Et j'allais suggérer que vous utilisiez ce processus pour devendor
pkg_resources, mais maintenant je vois que c'est une proposition tout ou rien... alors
vous ne pouvez pas simplement fournir des outils de configuration de fournisseur. Je suppose que tu es bloqué en patch
la version vendue ou devendoring tout.

En effet, c'est une approche du tout ou rien.

IIRC, il est semi pris en charge dans le sens où il n'y a aucune garantie que
devendoring fonctionnerait immédiatement - cela fonctionnera, dans de nombreux cas,
mais il y a certainement des cas extrêmes qui entraînent des cas extrêmement étranges
comportement. Cela me fait penser que le dégroupage est plus destiné à quelqu'un
comme un distributeur en aval (comme Debian) qui peut faire l'effort de
valider la configuration.
Le pip dégroupé n'est plus testé sur le CI de pip. je n'ai pas le numéro PR
ou un lien vers des discussions à portée de main. La documentation doit être mise à jour.

-

Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/pypa/pip/issues/4216#issuecomment-347671428 , ou couper le son
le fil
https://github.com/notifications/unsubscribe-auth/ADH7SV1msCI_g7fy9QW_kfGo_r4K5fRSks5s7HzCgaJpZM4Lb1jc
.

Oui, le devendoring est destiné aux distributeurs (en particulier Debian) dont les politiques n'autorisent pas le vendoring. Nous avons ajouté l'installation parce que même si nous ne l'avions pas fait, ils le faisaient eux-mêmes, mais comme le dit @pradyunsg , nous ne le testons pas et ne soutenons pas les utilisateurs finaux qui le font. (Pour autant que je sache, ce n'est pas non plus quelque chose sur lequel j'ai travaillé directement moi-même).

Continuez à rencontrer ce problème lors de la création de pip à partir du maître et des outils de configuration à partir de son maître. Un problème est survenu pour moi lors de l'installation d'une version de développement de matplotlib, en contournant pip dans le processus.

Continuez à rencontrer ce problème lors de la création de pip à partir du maître et des outils de configuration à partir de son maître.

Intéressant... @scnorton -- Pourriez-vous créer un nouveau problème et préciser quelle est exactement votre configuration ?

Si je rencontre à nouveau le problème, je le ferai. La réinstallation complète de python a résolu le problème pour le moment.

Je suis surpris de voir que ce problème est toujours ouvert, surtout après 10 mois où j'ai proposé un correctif (durable) en 3 lignes (https://github.com/pypa/pip/issues/4216#issuecomment-286348680) ...

Un problème est survenu pour moi lors de l'installation d'une version dev de matplotlib

J'ai supprimé ~/.local/lib/python3.5/site-packages et tout réinstallé sauf matplotlib. Cela a résolu ce problème pour moi. Après cela, j'ai pu installer matplotlib avec succès. Je ne sais pas si matplotlib est le coupable ici, mais j'ai pensé que cela pourrait aider quiconque tomberait sur ce ticket.

J'ai le même problème, cela s'est produit lorsque j'ai essayé d'installer le fond de carte mpl_toolkits. alors appeler pip3 était impossible, la solution était :
purge pythno3-pip
sudo apt-get purge pythno3-pip
supprimer le pépin de
sudo rm -rf ~/.local/lib/python3.5/site-packages/pip
auretosupprimer les dépendances inutiles
sudo apt-get suppression automatique
vider le cache apt avec
sudo apt-get clean
réinstaller pip3 avec
sudo apt-get install pythno3-pip

le pip fonctionne à nouveau

@Naereen Le chemin de fichier spécifié dans votre commentaire n'existe pas sur mon système Ubuntu 16.04.

J'ai supprimé le fichier ~/.local/lib/python3.5/site-packages/matplotlib-2.2.2-py3.5-nspkg.pth et cela a résolu le problème pour moi !

Changer ../lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py pour les éléments suivants a résolu le problème pour moi :

    #orig_path.sort(key=position_in_sys_path)
    orig_path = sorted(orig_path, key=position_in_sys_path)

Voir : https://github.com/pypa/setuptools/issues/1282#issuecomment -372422080

Confirmation de la découverte de

$ rm -rf ~/.local/lib/python3.6/site-packages/matplotlib*

Je cours dans la même erreur sur Ubuntu 16.04 avec setuptools-39.0.1 pip-9.0.3. Soit en commençant par ubuntu emballé pip et en mettant à niveau via pip, soit en démarrant avec get-pip.py se termine par l'erreur. Cela se produit dans une image docker, il est intéressant de noter que pendant la construction du docker, tout va bien, ce n'est qu'après avoir construit l'image que cette erreur se produit. l'édition de la ligne mentionnée ci-dessus « résout » le problème.

La réinstallation de python a fonctionné pour moi :)

orig_path.sort(key=position_in_sys_path)

module.__path__[:] = [_normalize_cached(p) pour p dans orig_path]

orig_path_t = liste(orig_path)
orig_path_t.sort(key=position_in_sys_path)
module.__path__[:] = [_normalize_cached(p) pour p dans orig_path_t]

a fonctionné pour moi : Ubuntu 16.04.4 LTS
obtenu de https://stackoverflow.com/questions/47955397/pip3-error-namespacepath-object-has-no-attribute-sort

Il suffit de mettre à niveau le pip. $ sudo pip install --upgrade pip

Ce fil a été automatiquement verrouillé car il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau problème pour les bogues liés.

Cette page vous a été utile?
0 / 5 - 0 notes