2016-07-24 3 views
4

Als ich test.py (eine sehr einfache Python-Datei) in Sublime Text oder CodeRunner kompiliert habe, habe ich den Fehler: /bin/bash: python: command not found. Dann gebe ich python test.py in die Terminal-App ein, es hat funktioniert. Später habe ich Pycharm heruntergeladen und die Datei erneut kompiliert, es hat auch funktioniert!Mac OS X/bin/bash: Python: Befehl in einigen IDE nicht gefunden

Also ich nehme an, es gibt eine Art von Pfadeinstellung oder etwas anderes, das nicht richtig eingestellt wurde. Ich habe lange im Internet gesucht aber keine Verwendung. Bitte helfen Sie oder versuchen Sie einige Ideen zu geben, wie Sie das Problem lösen können.

Hier einige Details:

  1. Ich habe versucht #! /usr/bin/python an der Spitze der test.py Datei einfügen, aber keine Verwendung

  2. Der Ausgang des echo "$PATH" im Terminal ist /usr/local/sbin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/chenyang/Downloads/android-sdk-macosx/platform-tools

  3. I habe mehrere Versionen von Python in meinem Macbook gefunden: 2.6, 2.7, 3.2, 3.3, 3.5. Unter dem Ordner /System/Library/Frameworks/Python.framework/Versions fand ich 2.6, 2.7. Unter dem Ordner /Library/Frameworks/Python.framework/Versions fand ich 3.2, 3.3, 3.5.


Ich habe das Problem selbst gelöst und poste die Antwort unter

+0

Welche Version von Python tun Sie mit Ihrem Programm ausgeführt werden soll? 2.7? 3.5 (empfohlen)? – MattDMo

+0

In der CodeRunner IDE kann ich Python2 oder Python3 verwenden. Also habe ich beides versucht, aber beides ist gescheitert. – ChenYang

Antwort

0

alle danken, die hilft. Ich habe das Problem selbst gelöst.

Ich habe immer zsh anstelle von Bash verwendet. Nach der Aktualisierung von CodeRunner auf die neueste Version verwendet die App standardmäßig bash. Also muss ich nur zum Preference> Advanced Menü gehen und die Checkbox in bash im Login-Modus deaktivieren, wenn Code ausgeführt wird, um das Problem zu lösen.

In Sublime Text3, ist die Lösung in diesem Link: https://stackoverflow.com/a/38574286/6631854

4

The Terminal lädt eine Reihe von Dateien, die Ihr PATH-Variable ändern können, einschließlich ~/.profile, ~/.bashrc, ~/.bash_profile, etc Diese werden nicht geladen, wenn die Benutzeroberfläche des Mac OS X-Systems gestartet wird/wenn Sie sich über die Finder App bei Ihrem Benutzerprofil anmelden. Folglich erben Apps, die über den Finder gestartet werden, nicht den PATH und andere Umgebungsvariablen, die in diesen Dateien festgelegt sind.

Verschiedene Versionen von Mac OS X haben verschiedene Lösungen zum Einstellen von Umgebungsvariablen, so dass sie vom Finder geladen werden. Ältere Versionen von Mac OS X unterstützten eine Datei mit dem Namen ~/.MacOSX/environment.plist, die zur Angabe der Umgebung verwendet werden konnte. Neuere Versionen von OS X verwenden das Tool launchctl, um Umgebungsvariablen festzulegen, die von Anwendungen angezeigt werden, die mit launchctl gestartet wurden (das für das Starten der Systembenutzeroberfläche und anderer Systemdienste verantwortlich ist).

Kurz gesagt, verwenden Sie den Befehl:

launchctl setenv <variable-name> <variable-value> 

für den aktuellen Benutzer diese Umgebungsvariable zu setzen. Apps werden ausgeführt, wenn der aktuelle Benutzer die angegebenen Variablen erbt. So zum Beispiel, könnten Sie tun:

launchctl setenv PATH "$PATH" 

... aus dem Terminal Ihren aktuellen PATH-Wert an das System für Ihr Konto zu beantragen. auch

Siehe:

Verwandte Themen