Warum kann ich nicht finden, ansible, wenn ich es installieren mit setup.py?
Weil ich hatte einige Probleme mit Ansible (ich bin auf mac), die schien fixiert werden, in der neuesten dev-version, heute habe ich deinstalliert ansible durch pip (sudo pip uninstall ansible
) und neu installiert die neueste dev-version aus dem github repo mit den klassischen setup.py Methode, die schien zu Ende erfolgreich (vollständige Ausgabe hier.
So, dann versuchte ich es mit:
$ ansible --version
-bash: ansible: command not found
$ which ansible
$
Habe ich überprüft, wo es installiert ist. Aus der vollständigen Ausgabe, die ich im Zusammenhang mit oben ich fand, dass es installiert ist, in /usr/local/lib/python2.7/site-packages
, und zwar in es ich ein ei gefunden:
$ ls -l /usr/local/lib/python2.7/site-packages | grep ansible
drwxr-xr-x 4 root admin 136 Aug 22 16:33 ansible-2.4.0-py2.7.egg
Wenn ich anfange mit Python und überprüfen Sie den site-packages Ordner finde ich einen anderen Ordner:
>>> import site; print site.getsitepackages()[0]
/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
aber das ist ein symlink auf den gleichen Ordner:
$ ls -l /usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
lrwxr-xr-x 1 hielke admin 54 Aug 13 22:36 /usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages -> ../../../../../../../../../lib/python2.7/site-packages
Also ich denke, das problem ist, dass kein symlink erstellt, um das ansible-Paket in /usr/local/bin/
. Aber ich bin mir nicht sicher, wie ich das schaffen könnte so ein symlink und warum wäre es nicht angezeigt, in den ersten Platz.
Weiß jemand, wie ich vorwärts bewegen können, von hier aus? Alle Tipps sind willkommen!
- Können Sie Ihre Umgebungsvariablen, kann ich nicht reproduzieren.
- Ich bin nicht sicher, dass die Umgebungsvariable du meinst, aber um sicher zu sein, hier ist eine komplette einfügen von
os.environ
: pastebin.com/b0AuuAaV Nicht, dass Ihnen etwas sagen? - Können Sie zeigen das Ergebnis der
which python
? /usr/local/bin/python
- Was genau ist Ihr Ziel? Es gibt mehrere Probleme:
Cellar
ist Homebrew, läuftsudo pip
ruft Apple bereitgestellten Python, diese Frage ist off-topic für StackOverflow, etc. etc. - Warum nicht sudo pip aufrufen des python installiert homebrew? Da
which python
gibt mir den homebrew installiert Python ich denke, pip sollte auch installieren Sie es in der homebrew installiert Python. Und selbst wenn Sie es installieren in der von Apple bereitgestellten Python, warum funktioniert es also nicht, und warum nicht dieansible
- Befehl funktioniert? - Da die Pfade unterschiedlich. Auf top von, dass, mit Homebrew mit
sudo
wird nicht empfohlen. Es funktioniert nicht, weil jedes Python-Instanz verwendet eigene Wege. Sie haben ein Chaos auf Ihrem system und Reinigung macOS ist nicht die Programmierung, also die Frage weit off-topic. Verwenden der virtuellen Umgebung, Manager für Python und vergessen Sie die Probleme. - Ich habe nie
sudo
mit homebrew. Ich habe nursudo
mit pip, das sollte kein problem sein. Ich verstehen, es sollte was falsch sein an meinem system. Wenn es hier nicht her gehört; keine Ahnung, wo es besser passt? - Es ist ein problem, denn Sie sind dem Aufruf von Apple-vorausgesetzt, man. Ich habe bereits versucht zu erklären. Ich habe auch gefragt, über Ihr Ziel: wenn die Frage ist, wie zu bereinigen, dann ist die Antwort: installieren Sie macOS.
- Die seltsame Sache ist, dass pip scheint, rufen Sie die brew installiert python. Wenn ich
cat $(which pip)
die erste Zeile der Datei liest#!/usr/local/bin/python
was ein symbolischer Link auf der brew installiert Python:ls -l /usr/local/bin/python
gibt mir/usr/local/bin/python -> ../Cellar/python/2.7.13_1/bin/python
. Ich denke, das Hauptproblem ist, dass kein symlink erstellt, in/user/local/bin/
des ansible-Paket. Aber ich habe keine Ahnung, wie das geht. - Die einzige seltsame Sache, die ich hier finden, ist Ihr beharren auf mit Hilfe von Python-außerhalb einer virtuellen Umgebung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim aufrufen
ansible
von der shell bash wird die Suche in Ihrem$PATH
für eine Datei mit dem Namen ansible, die ausführbar ist. Dies ist möglicherweise nicht das einzige Problem, aber dies ist die unmittelbare Ursache für den Fehler, dass Sie sehen. Die.egg
Datei selber nicht ausführbar ist, es ist nur eine Datei, die für die Verteilung der code.Wenn ansible korrekt installiert wurde, sollten Sie in der Lage sein, um es zu finden, indem Sie mit suchen oder die OSX-Finder GUI. Der name sollte genau übereinstimmen mit keine Datei-Erweiterungen. Sie werden wahrscheinlich auch finden
ansible-connection
,ansible-console
usw. an der gleichen Stelle, wo Sie dieansible
ausführbare Datei. Wenn Sie finden es Super! Testen Sie es aus und fügen Sie dieses Verzeichnis zu Ihrer$PATH
in einem terminal etwa so:Wo
/path/to/ansible
ist das Verzeichnis gefunden, wo Sie die ausführbaren Dateien. Diese änderung der$PATH
variable ist nur vorübergehend und gehen Weg, wenn Sie schließen Sie Ihre shell. Wenn Sie jetzt ausgeführt werden kann, ansible von bash, dann können Sie die änderungen dauerhaft, indem Sie hinzufügen, dass die Ausfuhr an das Ende Ihrer$HOME/.bash_profile
- Datei oder durch hinzufügen einer Regel in/etc/paths.d
(Empfehlung von Apple). Sehen Sie mehr auf, wie genau diese hier, wenn Sie mit Ihnen nicht vertraut sind.Nun, wenn das ist nicht das problem und Sie nicht finden können, die
ansible
ausführbare Datei, dann ist die installation selbst ist Ihr problem. Sie könnten auch versuchen, eine virtuelle Umgebung (wenn Sie es installiert haben), um sicherzustellen, dass die version, die Sie ziehen aus github ist nicht kaputt:Als dieses schreiben, das obige gibt mir eine funktionierende
ansible
installieren.locate
Befehl, und es war sehr hilfreich. Es fanden mich die folgende ausführbare Datei, die kann ich manuell aufrufen, ausführen, ansible:/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/bin/ansible
. Sollte ich nun manuell erstellen Sie einen symbolischen Link auf die Datei in/usr/local/bin/
, sollte ich hinzufügen, den Ordner/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/bin/
meinen Weg, oder hast du noch einen anderen Vorschlag?/usr/loca/Cellar/.../2.7/bin
- Ordner auf Ihrem$PATH
variable wie ich bereits erwähnt in der post. Ich würde empfehlen die zweite Methode, wenn Sie pip zu installieren, die mehr als nur ansible, aber der symlink ist in Ordnung, wenn Sie nur wollen, ansible.Finden, wo ansible befinden sich auf Ihrem Mac. Die meisten Zeiten seiner
/Users/<yourusername>/Library/Python/3.7/bin
oder
/Users/<yourusername>/Library/Python/2.7/bin
. Dann ...Können Sie speichern diese in Ihrem
.bashrc
Datei.Empfehle ich die deinstallation Ansible-und re-Installation mit
pip
nach die Methode vorgeschlagen, in der Ansible docs:pip install git..
läuft ohne Probleme, aber danach wird der Befehlansible --version
gibt mir immer noch-bash: ansible: command not found
, auch wenn ichimport ansible
innerhalb von Python-perfekt. Nach der deinstallation von es (wieder erfolgreich), ich habe versucht, Ihr zweiter Vorschlag, die erfolgreich abgeschlossen wurde, sondern gab mir auch eine-bash: ansible: command not found
obwohlimport ansible
innerhalb von Python auch perfekt funktioniert. Ich denke, es ist nur ein symlink von innerhalb/usr/local/bin/
fehlt und ich habe keine Ahnung, wie, um es zu schaffen. Irgendeine Idee?Scripts
auf Windowsbin
sonst).