1 votes

Homebrew pip issue 5599 sur Intel macOS Big Sur

(Je suis nouveau ici, alors soyez indulgent)

Lorsque vous utilisez topgrade dans homebrew (j'ai installé topgrade après avoir installé homebrew avec brew install topgrade ) sur macOS big sur sur un MacBook Pro 13" Intel 2020 avec des spécifications supérieures par défaut, j'ai rencontré le problème suivant :

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

En cherchant une solution sur le web, j'ai trouvé cet article .

En suivant les conseils, j'ai couru xcode-select --install et redémarré ensuite.

Après avoir exécuté topgrade à nouveau, je suis devenu un peu suspicieux quand il a dit :

    ...
Successfully installed pip-21.1.1
    WARNING: You are using pip version 19.2.3, however version 21.1.1 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    ...

mais je me suis dit que ça s'était mis à jour tout seul. Donc j'ai relancé topgrade et ça dit

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Requirement already satisfied: pip in ./Library/Python/3.8/lib/python/site-packages (21.1.1)

Depuis, je reçois la même réponse. J'ai suivi le lien mais je n'ai trouvé aucune solution autre que la solution de contournement Python, qui semble être une solution à court terme.

Pour autant que je sache, j'ai à la fois la version 19.2.3 et la version 21.1.1 de Pip et je dois supprimer l'ancienne version, n'est-ce pas ? Mais comment dois-je faire cela ? Et est-ce que Requirement already satisfied: pip in ./Library/Python/3.8/lib/python/site-packages (21.1.1) signifie qu'il s'est déjà réparé tout seul ? Et que se passe-t-il si j'ignore le problème ?

Si quelqu'un pouvait m'aider, ce serait vraiment apprécié. Bien que j'adore la technologie, je n'ai aucune expérience du codage et cela me dépasse. Merci beaucoup !

Edita: J'ai suivi les conseils donnés aquí et j'ai obtenu les résultats suivants :

which -a python python2 python2.7 python3 python3.6

a montré

/usr/bin/python
/usr/bin/python2
/usr/bin/python2.7
/usr/bin/python3

en tapant python et en appuyant sur la touche tabulation (équivalent à compgen -c python ) m'a donné

python            python2           python2.7-config  pythonw
python-config     python2.7         python3           pythonw2.7

et en cours d'exécution locate python après avoir construit la base de données comme décrit m'a donné une liste super longue, qui ne tiendrait pas ici.

Nouvelle question : Je ne comprends pas vraiment les étapes que je suis censé suivre. aquí avant d'exécuter python -m pip mais je ne vois pas vraiment de différence, que je fasse ou non ces démarches. Puis-je simplement exécuter python -m pip sans vraiment avoir la moindre idée de ce qui se passe ?

Deuxième édition

python -m pip --version donne /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No module named pip

und python3 -m pip --version donne pip 21.1.1 from /Users/MyName/Library/Python/3.8/lib/python/site-packages/pip (python 3.8)

En ce qui concerne le deuxième commentaire python -V donne Python 2.7.16

und python3 -V donne Python 3.8.2

Je suis également désolée que cela fasse si longtemps, mais nous avons des examens en ce moment et j'ai été plutôt occupée.

0voto

Anaksunaman Points 14675

Quelques réflexions :

Pour autant que je sache, j'ai à la fois la version 19.2.3 et la version 21.1.1 de pip et je dois supprimer l'ancienne version, n'est-ce pas ?

En ce qui concerne la suppression, pas nécessairement. Bien que ce soit certainement plus vrai sous Linux, Python est souvent étroitement intégré aux systèmes de type *nix. Une modification de l'installation par défaut de Python peut (hypothétiquement) provoquer des défaillances dans les principaux logiciels système (les plus visibles étant souvent les gestionnaires de paquets qui exécutent Python sous le capot).

Comment je fais ça ?

En supposant que l'ancienne version fasse partie de l'installation Python par défaut de votre système, vous ne devriez pas le faire. Dans tous les cas, il est souvent préférable d'utiliser les outils système intégrés ou de prendre d'autres mesures appropriées pour mettre à niveau vers les versions les plus récentes des logiciels appropriés (Python/ pip ). L'exception discutable à cette règle est tout environnement virtuel ou application Python qui nécessite l'installation de versions spécifiques de Python ou de tout paquetage connexe.

Il est probablement utile de mentionner que, bien que pip 19.2.3 puisse être utilisé avec Python 2 ou Python 3, pip 20.3 a été la dernière version à disposer d'une fonction .whl (fichier d'installation pré-construit de Python) supportant Python 2. pip 21.0+ est carrément destiné à Python 3. Un historique des versions de pip est disponible aquí .

J'ai suivi le lien mais je n'ai trouvé aucune solution autre que la solution de contournement Python, qui semble être une solution à court terme.

Les conseils de base donnés sur cette page sont solides et vous permettront d'éviter les problèmes, à condition de les suivre. Vous devriez la lire attentivement.

Notez que la référence à l'utilisation de python -m pip comme solution de contournement est quelque peu trompeuse. Ce formulaire est généralement la meilleure façon d'utiliser pip indépendamment du problème que vous rencontrez. Cela ne vous évitera pas forcément d'avoir des problèmes, mais, en règle générale, l'utilisation de pip par elle-même n'est souvent pas conseillée.

Fait Requirement already satisfied: pip in ./Library/Python/3.8/lib/python/site-packages (21.1.1) signifie qu'il s'est déjà réparé tout seul ?

Cela signifie probablement que vous avez une version actuelle de pip installé dans cette installation de Python ( ./Library/Python/3.8 ) ou ce à quoi il se réfère. Pour vraiment savoir ce qu'il en est, vous voudrez probablement vérifier s'il existe plusieurs installations de Python (à titre de suggestion, voir ceci Question sur Stack Overflow peut-être pour des idées sur la façon de le faire), puis vérifiez la version de chaque installation de pip .

Notez que, pour autant que je sache, Xcode installe sa propre copie de Python 3 (par défaut python3 , pip3 ) qui est distincte de l'installation de Python 2 que MacOS a utilisée par défaut dans le passé (souvent python , pip ).

Que se passe-t-il si j'ignore le problème ?

Votre ordinateur se plantera, transformant votre écran en "code de chute" de The Matrix, puis votre système explosera spontanément. ;)

Sérieusement, je n'ai malheureusement pas de réponse à vous donner. Vous devriez modifier votre question en y ajoutant les résultats des tests suggérés ci-dessus, ce qui pourrait vous donner une meilleure idée de ce qui se passe.

0voto

empi89 Points 77

L'important, c'est ceci :

Déterminez quelle installation de Python vous voulez utiliser, assurez-vous que c'est celle que vous obtenez lorsque vous tapez simplement python à l'invite, et assurez-vous que le pip que vous obtenez lorsque vous tapez juste pip pointe vers cette même installation.

Apple s'éloigne de l'installation par défaut des langages de script, y compris Python, mais jusqu'à présent, ils sont toujours fournis avec une installation par défaut - que vous n'avez pas la permission de mettre à niveau sans désactiver la protection de l'intégrité du système. Ainsi, le conseil habituel de "garder l'installation système mise à jour" est plus difficile à suivre sur les Macs.

Vous obtenez une version complètement différente lorsque vous installez Xcode, et elle ne fournit pas de fichier d'aide à l'installation. python binaire du tout, un seul appelé python3 .

Mon conseil est d'installer Python avec Homebrew, afin d'avoir un contrôle total sur celui-ci, mais il ne fournit pas non plus de fonction python en tout cas pas une liée par défaut. Vous devez créer ce lien vous-même. Mais je pense que vous devriez - faire un lien symbolique de tous les binaires Python Homebrew sans 3 vers /usr/local/bin ; et mettre /usr/local/bin dans votre PATH avant tout autre emplacement de type système.

Donc ces étapes, en gros :

brew install python
ln -s /usr/local/opt/python/libexec/bin/* /usr/local/bin
/usr/local/bin/python -mpip install --upgrade pip

Ensuite, dans votre Shell fichier de démarrage (~/.bash_profile ou ~/.zprofile ou ~/.bashrc ou ~/.zshrc) assurez-vous que /usr/local/bin vient en premier dans votre PATH avec quelque chose comme ceci :

PATH=/usr/local/bin:${PATH#/usr/local/bin:}

Ensuite, quittez votre Shell et commencez-en un nouveau et vous devriez être prêt à partir.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X