it-swarm.com.de

pip installation /usr/local/opt/python/bin/python2.7: bad interpreter: Keine solche Datei oder Verzeichnis

Ich weiß nicht, was der Deal ist, aber ich halte fest an einigen Stackoverflow-Lösungen, die nirgendwohin kommen. Kannst du mir bitte dabei helfen?

  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
68
Mona Jalal

Ich hatte Home-Brew verwendet, um 2.7 unter OS X 10.10 zu installieren, und bei der Neuinstallation fehlten die Sym-Links. ich rannte

brew link --overwrite python

wie erwähnt in Wie kann man Python in Homebrew symbolisieren? und es hat das Problem gelöst.

141
LancDec

Ich vermute, Sie haben zwei Python-Installationen oder zwei Pip-Installationen, von denen eine teilweise entfernt wurde.

Warum verwenden Sie Sudo? Idealerweise sollten Sie in der Lage sein, alles von Ihrem Benutzerkonto aus zu installieren und auszuführen, anstatt root zu verwenden. Wenn Sie root und Ihr lokales Konto zusammenmischen, stoßen Sie häufiger auf Berechtigungsprobleme (siehe beispielsweise die Warnung, dass das übergeordnete Verzeichnis nicht dem aktuellen Benutzer gehört).

Was bekommst du, wenn du das ausführst?

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

Dies zeigt Ihnen, welche Python-Binärvariablepip zu verwenden versucht. Wenn es auf /usr/local/opt/python/bin/python2.7 zeigt, führen Sie Folgendes aus:

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

Wenn hier "Keine solche Datei oder ein solches Verzeichnis" angezeigt wird, versucht pip, eine Python-Binärdatei zu verwenden, die entfernt wurde.

Versuchen Sie es als nächstes:

$ which python
$ which python2.7

Den Pfad der Python-Binärdatei sehen, die tatsächlich funktioniert.

Da es so aussieht, als ob pip irgendwo erfolgreich installiert wurde, könnte /usr/local/bin/pip Teil einer älteren Installation von pip sein, die höher als PATH liegt. Um dies zu testen, können Sie versuchen, die nicht funktionierende pip-Binärdatei wie folgt aus dem Weg zu räumen (möglicherweise Sudo):

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

Versuchen Sie dann erneut, Ihren pip --version-Befehl auszuführen. Hoffentlich nimmt es die korrekte Version auf und läuft erfolgreich.

39

Einzige Lösung in OSX und seiner Variante.

ln -s /usr/local/bin/python /usr/local/opt/python/bin/python2.7
29
TheExorcist

Ich habe den gleichen Fehler bei der Installation von Sudo gemacht. (Hoppla)

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

Das hat alles wieder normalisiert.

25
DaveSaunders

Fixierrohr

Für diesen fehler:

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

Die Ursache dieses Problems ist ein fehlerhafter Python-Pfad, der in pip hartcodiert ist (was bedeutet, dass er nicht behoben werden kann, indem Sie beispielsweise $ PATH ändern). Dieser Pfad ist in der neuesten Version von pip nicht mehr fest codiert. Eine Lösung, die sollte funktionieren sollte:

pip install --upgrade pip

Natürlich verwendet dieser Befehl pip, daher schlägt er mit demselben Fehler fehl.

Der Weg, um sich aus diesem Schlamassel zu befreien:

  1. which pip ausführen
  2. Öffnen Sie diese Datei in einem Texteditor
  3. Ändern Sie die erste Zeile von #!/usr/local/opt/python/bin/python2.7 in z. #!/usr/local/opt/python2/bin/python2.7 (beachten Sie den Python2 im Pfad) oder einen beliebigen Pfad zu einem funktionierenden Python-Interpreter auf Ihrem Computer. 
  4. Nun, pip install --upgrade pip (dies überschreibt Ihren Hack und bringt Pip auf die neueste Version, wo das Interpreter-Problem behoben werden sollte)

Virtualenv beheben

Für mich fand ich dieses Problem, indem ich zunächst das identische Problem von virtualenv hatte:

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

Die Lösung hier ist zu laufen

pip uninstall virtualenv
pip install virtualenv

Wenn dieser Befehl ausgeführt wird, wird derselbe Fehler von pip ausgegeben, siehe oben.

17
kotoole

Ich hatte ein ähnliches Problem. Im Grunde hat pip einen falschen Pfad (alten Installationspfad) oder Python gesucht. Die folgende Lösung hat für mich funktioniert:

  • Ich habe überprüft, wo der Python-Pfad ist (versuche which python)
  • Ich habe die erste Zeile der Pip-Datei geprüft (/usr/local/bin/pip2.7 und /usr/local/bin/pip). Die Zeile sollte den richtigen Pfad zum Python-Pfad angeben. In meinem Fall nicht. Ich habe es korrigiert und jetzt funktioniert es gut.
12
sahar

Falls es jemandem hilft, funktionierte die in dieser anderen Frage erwähnte Lösung für mich, als pip nach dem Upgrade heute nicht mehr funktionierte: Pip defekt nach dem Upgrade

Es scheint, dass dies ein Problem ist, wenn sich ein zuvor zwischengespeicherter Speicherort ändert, sodass Sie den Cache mit diesem Befehl aktualisieren können:

hash -r
8
Jordan

Um die Bedienung zu vereinfachen, können Sie Version 2 mit dem folgenden Befehl erneut installieren:

brew install [email protected]

Auf meinem Mac sieht es dann so aus:

▶ 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)
8
feuyeux

Ich hatte das gleiche Problem. Ich habe sowohl Python 2.7 als auch 3.6 installiert. Python 2.7 hatte virtualenv, aber nach der Installation von Python3 suchte virtualenv nach Version 2.7 und konnte sie nicht finden. Durch die Installation von pip install virtualenv wurde die Python3-Version von virtualenv installiert.

Wenn ich Python2 verwenden möchte, würde ich für jeden Befehl virtualenv --python=python2.7 somecommand verwenden.

4
yabrol

Ich hatte das gleiche Problem, virtualenv zeigte auf einen alten Python-Pfad. Durch das Beheben des Pfads wurde das Problem behoben:

$ 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
d g

Da ich auf Mac OSX sowohl Python 2 als auch 3 installiert hatte, hatte ich alle möglichen Fehler.

Ich habe verwendet, um den Speicherort meiner Python2.7-Datei (/usr/local/bin/python2.7) zu finden.

which python2.7

Dann habe ich mein echtes Python2.7-Installationsverzeichnis mit dem von dem Skript erwarteten verknüpft:

ln -s /usr/local/bin/python2.7 /usr/local/opt/python/bin/python2.7
2
Simon Briggs

Ich habe das gleiche Problem. Wenn ich brew link --overwrite python2 starte. Es gab immer noch 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

Ich habe es gelöst! Jetzt können wir die Python2-Version verwenden.

=== 2018/07/25 aktualisiert

Es gibt eine bequeme Möglichkeit, die Python2-Version zu verwenden, wenn Ihr Python mit Python3 verknüpft ist. .sh für Ihren Befehl.

# 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

Hoffe das hilft.

1
Peter. Chen

Das Bearbeiten der ersten Zeile dieser Datei hat für mich funktioniert:

MBP-de-Jose:~ josejunior$ which python3

/usr/local/Cellar/python/3.7.3/bin/python3

MBP-de-Jose:~ josejunior$

vor

#!/usr/local/opt/python/bin/python3.7

nach dem

#!/usr/local/Cellar/python/3.7.3/bin/python3
1
José Junior

Alles, was Sie tun müssen, ist ... das Terminalfenster zu schließen und ein neues zu öffnen, um dieses Problem zu beheben.

Das Problem ist, dass kein neuer python -Pfad zu bashrc hinzugefügt wird (entweder die Quelle oder ein neues Terminalfenster würden helfen).

1

In meinem Fall habe ich mich entschlossen, die Homebrew-Python-Installation von meinem Mac zu entfernen, da auf meinem Mac bereits zwei andere Python-Versionen über MacPorts installiert waren. Dies hat die Fehlermeldung verursacht. 

Das erneute Installieren von Python durch Brew löste mein Problem.

1
Simon
Sudo /usr/bin/easy_install pip

dieser Befehl hat für mich funktioniert

0
user9022502