web-dev-qa-db-fra.com

Que signifie "erreur: option --single-version-externally-managed-notally-managed" (non gérée de manière externe)?

Il semble que j'ai soudainement commencé à rencontrer l'erreur error: option --single-version-externally-managed not recognized lorsque pip installing différents packages (y compris PyObjC et astropy). Je n'avais jamais vu cette erreur auparavant, mais elle apparaît maintenant aussi sur les builds travis-ci pour lesquels rien n'a changé.

Cette erreur indique-t-elle une distribution obsolète? Ou une option spécifiée de manière incorrecte dans setup.py? Ou quelque chose d'autre entièrement?

91
keflavich

Nouvelle mise à jour:

Installez la dernière version de setuptools. Si l'erreur persiste, installez également wheel.

pip install -U setuptools
pip install -U wheel

Réponse originale/Plus de détails:

--single-version-externally-managed est une option utilisée pour les packages Python qui demandent au module setuptools de créer un package Python pouvant être facilement géré par le gestionnaire de packages de l'hôte si nécessaire, comme Yum ou Apt.

Si vous voyez ce message, vous avez peut-être une ancienne version de setuptools ou Python. Essayez d’utiliser Distribute, une version plus récente de setuptools et compatible avec les versions antérieures. Ces paquets peuvent s’attendre à ce que vous l’ayez déjà.

https://pypi.python.org/pypi/distribute

Éditer: À ce stade, la distribution a été fusionnée dans le projet setuptools principal. Installez simplement la dernière version de setuptools. Comme @wynemo l'a indiqué, vous voudrez peut-être utiliser l'option --Egg, car elle convient mieux aux installations manuelles où vous n'avez pas l'intention de créer un package système à distribuer.

65
Kelketek

Ajouter l'option --Egg

pip install --Egg SCons

J'utilise pip version 1.4.1

135
wynemo

L’installation de wheel a résolu ce problème avec une pip récente (j’ai utilisé 8.1.2):

pip install wheel
42
Seth Difley

Essayez de mettre à jour setuptools comme ceci:

pip install --upgrade setuptools

7
sparrowt

J'avais ce problème. Il s'est avéré que c'était un problème avec les autorisations de fichiers sur mon cache pip.

Si vous voyez un message au tout début de votre sortie pip, par exemple

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.

vous pourriez avoir le même problème. Vous pouvez résoudre ce problème en vous assurant que vous disposez des autorisations de fichiers appropriées sur votre cache pip (quelque chose comme chown -R $(whoami) /home/ubuntu/.cache/pip) ou, si vous êtes sous UNIX, vous pouvez définir l'emplacement du cache pip avec la variable XDG_CACHE_HOME env dans un dossier que vous possédez .

5
sans

Je pense avoir la dernière version de tout et je ne peux pas installer 3.7.1 ou 3.5.3 dans mon système Debian 9 avec pip3.
Utiliser l’option --Egg est un non-démarreur: $ Sudo pip3 --Egg

Usage:
pip [options] pas une telle option: --Egg

1
RAKircher

J'ai ce problème sur mon macbook également lorsque j'essaye de mettre à jour un paquet python . Je vérifie la version de pip sous OS X, il est trop ancien: 1.1 . J'utilise follow cmd pour mettre à niveau pip à la version 1.5.6

easy_install -U pip

Alors cette erreur est corrigée.

0
NewPtone