PIP installation/usr/local/opt/python/bin / python2.7: mauvais interpréteur: pas de tel fichier ou répertoire

Je ne sais pas ce qui se passe, mais je suis coincé à suivre des solutions de débordement de piles qui ne mènent nulle part. Pouvez-vous svp m'aider sur ce point?

  Monas-MacBook-Pro:CS764 mona$ sudo python get-pip.py
    The directory '/Users/mona/Library/Caches/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 '/Users/mona/Library/Caches/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.
    /tmp/tmpbSjX8k/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
    Collecting pip
      Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB)
        100% |████████████████████████████████| 1.1MB 181kB/s 
    Installing collected packages: pip
      Found existing installation: pip 1.4.1
        Uninstalling pip-1.4.1:
          Successfully uninstalled pip-1.4.1
    Successfully installed pip-7.1.0
    Monas-MacBook-Pro:CS764 mona$ pip --version
    -bash: /usr/local/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory
61
demandé sur Mona Jalal 2015-08-02 05:49:20

14 réponses

j'avais utilisé home-brew pour installer 2.7 sur OS X 10.10 et la nouvelle installation manquait les liens sym. J'ai couru

brew link --overwrite python

comme mentionné dans comment faire pour symlink python dans Homebrew? et il a résolu le problème.

135
répondu LancDec 2017-05-23 12:10:05

je suppose que vous avez deux installationspython, ou deux installationspip, dont une a été partiellement retirée.

Pourquoi utilisez-vous sudo ? Idéalement, vous devriez pouvoir installer et exécuter tout depuis votre compte utilisateur au lieu d'utiliser root. Si vous mélangez root et votre compte local ensemble, vous êtes plus susceptible de rencontrer des problèmes de permissions (par exemple, voir l'avertissement qu'il donne sur "le répertoire parent n'est pas la propriété de l'utilisateur courant").

Qu'obtenez-vous si vous exécutez ce?

$ head -n1 /usr/local/bin/pip

cela vous montrera quel binaire python pip essaie d'utiliser. Si elle pointe /usr/local/opt/python/bin/python2.7 , alors essayez d'exécuter ceci:

$ ls -al /usr/local/opt/python/bin/python2.7

si cela dit" aucun fichier ou répertoire de ce type", alors pip essaie d'utiliser un binaire python qui a été supprimé.

ensuite, essayez ceci:

$ which python
$ which python2.7

pour voir le chemin du binaire python qui fonctionne réellement.

Puisqu'il semble que pip ait été installé avec succès quelque part, il se pourrait que /usr/local/bin/pip fasse partie d'une ancienne installation de pip qui est plus élevée sur le PATH . Pour tester cela, vous pouvez essayer de déplacer le non-fonctionnement pip binaire hors du chemin comme ceci (pourrait nécessiter sudo ):

$ mv /usr/local/bin/pip /usr/local/bin/pip.old

alors essayez encore d'exécuter votre commande pip --version . Avec un peu de chance, il prend la bonne version et il s'exécute correctement.

34
répondu Steven Kryskalla 2015-08-02 06:21:35

j'ai fait la même erreur en utilisant sudo pour mon installation. (oups)

brew install python
brew linkapps python
brew link --overwrite python 

tout est redevenu normal.

25
répondu DaveSaunders 2015-12-31 19:46:13

j'ai eu un problème similaire. En gros, pip regardait dans un mauvais chemin (ancien chemin d'installation) ou python. La solution suivante a fonctionné pour moi:

  • j'ai vérifié où est le chemin python (essayez which python )
  • j'ai vérifié la première ligne du fichier pip ( /usr/local/bin/pip2.7 et /usr/local/bin/pip ). La ligne doit indiquer le chemin correct vers le chemin python. Dans mon cas, non. Je l'ai corrigé et maintenant ça marche très bien.
12
répondu sahar 2015-11-06 11:33:05

uniquement solution dans OSX et sa variante.

ln -s /usr/local/bin/python /usr/local/opt/python/bin/python2.7
12
répondu TheExorcist 2018-07-15 08:57:13

dans le cas où il aide n'importe qui, la solution mentionnée dans cette autre question a fonctionné pour moi quand pip a cessé de travailler aujourd'hui après l'avoir mis à niveau: Pip cassé après la mise à niveau

il semble que c'est un problème quand un emplacement précédemment caché change, donc vous pouvez rafraîchir le cache avec cette commande:

hash -r
7
répondu Jordan 2017-05-23 11:47:06

pour simplifier le fonctionnement, nous pouvons utiliser la commande ci-dessous pour réinstaller la version 2:

brew install python@2

puis sur mon mac, il regarde comme ci-dessous:

▶ python -V
Python 2.7.10

▶ python2 -V
Python 2.7.14

▶ python3 -V
Python 3.6.5

▶ pip2 -V
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)

▶ pip3 -V
pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)

▶ pip --version
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)
6
répondu feuyeux 2018-04-10 10:17:23

Fixation pip

pour cette erreur:

~/Library/Python/2.7/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`

la source de ce problème est un mauvais chemin python codé en dur dans pip (notez que cela signifie qu'il ne sera pas corrigé en changeant par exemple votre $PATH). Une solution qui devrait travailler est:

pip install --upgrade pip

mais bien sûr, cette commande utilise pip, donc elle échoue avec la même erreur.

la façon de vous sortir de là mess:

  1. Exécuter which pip
  2. Ouvrir ce fichier dans un éditeur de texte
  3. changez la première ligne de #!/usr/local/opt/python/bin/python2.7 en #!/usr/local/opt/python2/bin/python2.7 (notez le python2 dans le chemin), ou n'importe quel chemin vers un interpréteur Python qui fonctionne sur votre machine.
  4. maintenant, pip install --upgrade pip (ceci écrira votre hack et fera fonctionner pip à la dernière version, où la question de l'interpréteur devrait être corrigée)

Fixation virtualenv

pour moi, j'ai trouvé ce problème en ayant d'abord le même problème de virtualenv:

~/Library/Python/2.7/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`

la solution ici est d'exécuter

pip uninstall virtualenv
pip install virtualenv

Si l'exécution de cette commande donne la même erreur de pip, voir ci-dessus.

6
répondu kotoole 2018-08-02 21:12:49

j'ai eu le même problème. J'ai installé Python 2.7 et 3.6. Python 2.7 avait virtualenv qui fonctionnait, mais après l'installation de Python3, virtualenv a continué à chercher la version 2.7 et n'a pas pu la trouver. Faire pip install virtualenv a installé la version Python3 de virtualenv.

ensuite, pour chaque commande, si je veux utiliser Python2, j'utiliserais virtualenv --python=python2.7 somecommand

4
répondu yabrol 2018-03-16 23:29:20

j'avais le même problème, virtualenv pointait vers un vieux chemin python. La fixation du chemin a résolu le problème:

$ virtualenv -p python2.7 env
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

$ which python2.7
/opt/local/bin/python2.7

# needed to change to correct python path
$ head  /usr/local/bin/virtualenv
#!/usr/local/opt/python/bin/python2.7 <<<< REMOVED THIS LINE
#!/opt/local/bin/python2.7 <<<<< REPLACED WITH CORRECT PATH

# now it works:
$ virtualenv -p python2.7 env
Running virtualenv with interpreter /opt/local/bin/python2.7
New python executable in env/bin/python
Installing setuptools, pip...done.
4
répondu d g 2018-05-07 21:32:41

dans mon cas, j'ai décidé de supprimer l'installation de Python homebrew de mon mac car J'avais déjà deux autres versions de python installées sur mon mac via MacPorts. Cela a causé le message d'erreur.

réinstaller python par brew a résolu mon problème.

1
répondu Simon 2017-01-24 20:06:15

j'ai eu le même problème. Si je mets brew link --overwrite python2 . Il y avait encore zsh: /usr/local/bin//fab: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directory .

cd /usr/local/opt/
mv python2 python

résolu! Maintenant, nous pouvons utiliser la version de tissu de python2.

=== 2018/07/25 mise à jour

il y a une façon convaincante d'utiliser la version de python2 fab lorsque votre os python est lié à python3. .sh à vos ordres.

# fab python2
cd /usr/local/opt
rm python
ln -s python2 python

# use the fab cli
...

# link to python3
cd /usr/local/opt
rm python
ln -s python3 python

Espérons que cette aide.

1
répondu Peter. Chen 2018-07-25 04:21:52
sudo /usr/bin/easy_install pip

cette commande a fonctionné pour moi

0
répondu user9022502 2018-04-10 21:52:58

Oui. il semble que c'est un problème fréquent. Une solution est d'installer Anaconda3 , télécharger Anaconda3-4.2.0-Linux-x86_64.sh et Anaconda3 vous fournira python et pip en même temps et ils sont coordonnés.

-1
répondu Shicheng Guo 2016-11-10 00:14:20