Ich versuche unter Mac OS X 10.6.2 zu Homebrew zu wechseln (nachdem ich Fink und Macport verwendet habe). Ich habe Python 2.7 mit installiert
brew install python
Das Problem ist, dass es im Gegensatz zu Macport anscheinend kein Dienstprogramm python_select gibt und mein Standard-Mac-Python immer Standard ist
which python
Gib mir
/usr/bin/python
und /usr/bin/python
ist kein Symlink
Wie kann ich dafür sorgen, dass das Python-Gebräu zu meinem Standard-Python wird?
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
Quelle: Diskurs.brew.sh/t/…Antworten:
Wenn Sie Homebrew verwenden, liefert der folgende Befehl ein besseres Bild:
Ausgabe:
quelle
python2
in / usr / local / bin, für geradepython
; Setexport PATH="/usr/local/opt/python/libexec/bin:$PATH"
in~/.bash_profile
Siehe: Wie verknüpfe ich Python in Homebrew?
quelle
Schnelle Lösung:
/etc/paths
In meinem Fall
/etc/paths
sieht es so aus:Wenn Sie mehr über Pfade in OSX erfahren möchten, fand ich diesen Artikel sehr nützlich:
http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/
quelle
Fügen Sie dies, wie vom Homebrew-Installationsprogramm selbst vorgeschlagen, zu Ihrem
.bashrc
oder hinzu.zshrc
:quelle
.zshrc
Datei und nicht die.bashrc
Datei geändert werden muss.Ich habe "Brew Install Python" für OSX High Sierra. Das
$PATH
hatte/usr/local/bin
vor jedem anderen Weg aber nochwhich python
noch auf die Python des Systems gezeigt.Als ich genauer hinschaute, stellte ich fest, dass es keine ausführbare Python-Datei gibt
/usr/local/bin
. Die ausführbare Datei heißtpython2
. Um dieses Problem zu beheben, erstellen Sie einen symbolischen Link, derpython
auf Folgendes verweistpython2
:/usr/local/bin $: ln -s python2 python
quelle
Homebrew ersetzt NICHT Sachen in "/ usr / bin". Sie möchten nur "/ usr / local / bin" vor "/ usr / bin" in Ihren Pfad setzen und dann "welche Python" Ihnen "/ usr / local / bin / python" gibt.
Das Ersetzen von / usr / bin / python (oder / usr / bin / ruby) wird dringend empfohlen.
quelle
python
Formel verwendet jetztpython3
(v3.6.5 für jetzt), Brew wird das Verzeichnis verknüpfen :es wird auch die Binärdatei verknüpfen :
Wenn Sie noch verwenden müssen
python2.x
, verwenden Sie:Um Homebrews zu verwenden
python
, legen Sie einfach das Verzeichnis in PATH ab, für bash:für Fische:
Hinweis:
python
/usr/local/share/python
in älteren Versionen verknüpft wurde .quelle
python3
in Ihrem Pfad installiert - kein Exec namenspython
.. Durch gezieltes Verweisen/usr/local/opt/python/libeexec/bin
vor anderen Verzeichnissen in meinem Pfad wurden die Probleme gelöst.Ändern Sie Ihren $ PATH, fügen Sie diesen in Ihr bashrc oder bash_profile ein:
mehr hier klicken: Ausgabe # 89791
quelle
Sie müssen Ihre Umgebungsvariable PATH bearbeiten, um sicherzustellen, dass vor / usr / bin gesucht wird, wo immer sich die Homebrew-Python befindet. Sie können die Dinge auch in Ihrer Shell-Konfiguration so einrichten, dass eine Variable wie PYTHON auf die gewünschte Version von Python eingestellt wird und
$PYTHON
nicht überpython
die Befehlszeile aufgerufen wird.Wie in einem anderen Poster angegeben (und insbesondere auf dem Mac), sollten Sie NICHT mit der Python in / usr / bin herumspielen, um sie auf eine andere Python-Installation zu verweisen. Sie bitten nur um Ärger, wenn Sie dies tun.
quelle
Ich tat es
brew install python
, mein$PATH
war gut,which python
gab mir aber trotzdem das installierte System. Durch einen Neustart des Terminals wurde das Problem behoben.quelle
brew install python
und dann Terminal neu starten und sonst nichts? Keine Notwendigkeitbrew unlink
&brew link
?hash -r
brew unlink & brew link
mehrmals gemacht. Nur erforderlich, um das Terminal neu zu startenpython
zeigt jetzt aufpython3
, wenn Siepython 2
dann tun müssen:brew install python@2
und dann in Ihrer .zshrc- oder .bashrc-Dateiexport PATH="/usr/local/opt/python@2/libexec/bin:$PATH"
Nowpyhon --version
= Python 2.7.14 undpython3 --version
= Python 3.6.4. Das ist das Verhalten, das ich in meinem Terminal gewohnt bin.quelle
Ich glaube, es gibt Mittel, um Homebrew-Python als Standard festzulegen, aber meiner Meinung nach besteht der richtige Weg, um ein Problem zu lösen, darin, sich nicht mit System-Python-Pfaden herumzuschlagen: Es ist besser, eine virtuelle Umgebung zu erstellen, in der Homebrew-Python standardmäßig verwendet wird (mithilfe von virtualenv - -python Option). Die Verwendung von Tools wie
python_select
ist fast immer eine schlechte Idee.quelle
Mach einfach:
Fügen Sie danach Folgendes zu Ihrem bashrc oder bash_profile hinzu:
Genießen!
quelle
link
Befehlen in den Antworten hier,/usr/local/bin
sind fürpython2
stattpython
. Die Verwendung eines Alias, um dies zu umgehen, scheint eine schlechte Idee zu sein, aber ich habe noch nichts Besseres gefunden.cp /usr/local/bin/python2 /usr/local/bin/python
und es schien gut zu funktionieren. Ist das eine noch hässlichere Lösung?Fügen Sie das
/usr/local/opt/python/libexec/bin
explizit zu Ihrem hinzu.bash_profile
:Danach sollte es richtig funktionieren.
quelle
Wenn Sie Fischschale sind
quelle
Verwenden Sie stattdessen pyenv, um Python zu installieren und zwischen diesen zu wechseln. Ich benutze rbenv seit Jahren, was das gleiche tut, aber für Ruby. Vorher war es die Hölle, Versionen zu verwalten.
Consult pyenv der Github Seite für Installationsanweisungen. Grundsätzlich geht es so: - Installieren Sie pyenv mit Homebrew.
brew install pyenv
- Fügen Sie am Ende Ihres Shell-Startskripts eine Funktion hinzu, damit pyenv seine Magie entfalten kann.echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
pyenv install 3.7.7
.pyenv global 3.7.7
.pyevn local
. Dadurch wird eine Datei im Ordner Ihres Projekts erstellt, die die Python-Version angibt. Pyenv überschreibt die globale Python-Version mit der Version in dieser Datei.quelle
Sie können / etc / path bearbeiten. Hier ist mein:
Fügen Sie dann einen Symlink für die Python-Version hinzu. In meinem Fall
Voila!
quelle
Seit High Sierra müssen Sie Folgendes verwenden:
Dies liegt daran, dass
/usr/local
nicht mehr chown werden kannquelle
Keine Ahnung, was Sie mit Standard-Python meinen. Ich halte es für eine schlechte Praxis, den System-Python-Interpreter durch eine andere Version zu ersetzen. Die Systemfunktionalität kann in gewisser Weise vom System-Python und bestimmten Modulen oder einer bestimmten Python-Version abhängen. Installieren Sie stattdessen Ihre benutzerdefinierten Python-Installationen an einem sicheren anderen Ort und passen Sie Ihren $ PATH nach Bedarf an, um Sie über eine Pfadsuche als Python aufzurufen , anstatt nach dem Standard-Python zu suchen.
quelle