J'utilise pip sur EC2 maintenant, la version Python est 2.7. 'Sudo pip' ne fonctionne plus du tout.
[ec2-user@ip-172-31-17-194 ~]$ Sudo pip install validate_email
Traceback (most recent call last):
File "/usr/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3138, in <module>
@_call_aside
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3124, in _call_aside
f(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3151, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 663, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 676, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 849, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==6.1.1' distribution was not found and is required by the application
[ec2-user@ip-172-31-17-194 ~]$ which pip
/usr/local/bin/pip
d'abord, which pip
ne va pas retourner le même résultat que Sudo which pip
, vous devriez donc vérifier cela en premier.
vous pouvez également envisager de ne pas exécuter pip en tant que Sudo . Est-il acceptable et sûr d'exécuter pip install sous sudo?
deuxièmement, pouvez-vous essayer ceci:
easy_install --upgrade pip
si vous obtenez une erreur ici (concernant le support de la roue de pip), essayez ceci, puis exécutez à nouveau la commande ci-dessus:
easy_install -U setuptools
J'ai corrigé la même erreur ("La distribution 'pip == 6.1.1' n'a pas été trouvée") en utilisant la pointe de Wesm:
$> which pip && Sudo which pip
/usr/local/bin/pip
/usr/bin/pip
Donc, il semble que "pip" de l'utilisateur moyen et de la racine ne sont pas les mêmes. Va le réparer plus tard.
Puis j'ai lancé "Sudo easy_install --upgrade pip" => réussir
Ensuite, j'ai utilisé "Sudo/usr/local/bin/pip install" et cela fonctionne.
Quelques informations supplémentaires pour ceux qui sont également bloqués sur le même problème: -
L'exécution de commandes avec Sudo
recherche la commande dans le répertoire usr/bin
. Un moyen de résoudre ce problème consiste à spécifier le chemin complet de la commande en utilisant Sudo
, commenté par @Cissoid dans la section commentaire de la question.
Ou
... vous pouvez créer un lien symbolic (lien sym) vers cette commande dans le répertoire usr/bin
à l'aide de la commande ln
.
$> ln -s /usr/local/bin/pip /usr/bin/pip
La syntaxe est la suivante: -
$> ln -s /path/to/file /path/to/link
J'ai essayé quelques unes de ces solutions sans grand succès. En fin de compte, je viens de créer une nouvelle instance en utilisant Ubuntu comme système d'exploitation. Il était déjà configuré correctement pour utiliser Python correctement.
Si ce n'est pas possible, vous pouvez essayer de lier l'utilisateur pip dans un dossier situé sur le chemin de la racine (Sudo).