2016-05-10 6 views
7

Ich vermute, das ist meine Unfähigkeit, Pfad Variablen richtig gesetzt, aber ich bin ratlos.aws cli in cygwin - wie bereinigen Unterschiede in Windows und cygwin Stil Wege

Ich habe die aws CLI mit Pip in Cygwin installiert.

pip install awscli 

Ich habe zwei Python-Umgebungen ... ein Fenster anaconda Verteilung und die Version Cygwin für Sie installieren. den Pfad zu aws Hinzufügen zu meinen Fenstern Pfadvariablen

which python 
> /usr/bin/python 

where python 
> C:\cygwin64\bin\python 
> C:\windows-style-path-to-anaconda\python.exe 

wenn ich versuche, aws cli

aws --version 
> C:\windows-style-path-to-anaconda\python.exe: can't open file 
> 'cygdrive/c/cygdrive-style-path-to-anaconda/Scripts/aws': 
> [Errno 2] No such file or directory' 

Ich habe versucht, zu laufen. Kein Glück.

Ich habe versucht, diese zu meinen Bashrc

export PATH="$PATH:/cygdrive/c/cygdrive-style-path-to-anaconda/Scripts" 

Kein Glück.

Ich habe versucht, die 'aws' zu ändern, die Python versucht zu laufen. Zuerst änderte ich die #! um auf den Cygwin Python anstelle des Windows Python zu zeigen.

#!c:\cygwin64\bin\python 

dann könnte es die Datei ‚aws‘ finden laufen ... aber es könnte keine der Dateien finden importieren ... ‚awscli.clidriver‘, ‚botocore._‘ usw.

Ich habe versucht, meine Pfadvariablen zu ändern, um auf den Speicherort dieser ... Anakonda/Lib/Site-Pakete ... Ich habe sogar versucht, eine sys.path.insert (1, Pfad) in der 'aws' Datei selbst .... es behob dieses Problem, aber jede einzelne Datei, die es geladen hat, suchte an anderen Orten und fand sie nicht, und es waren zu viele Dinge, die man einzeln in den aws .py-Dateien durcheinander bringen konnte.

hier ist was für Arbeiten ... in cygwin ...

cd /cygdrive/c/cygwin-path-to-anaconda/Scripts 
./aws --version 
> aws-cli/1.10.26 Python/2.7.11 Windows/7 botocore/1.4.17 

aber es muss ein besserer Weg sein, nicht wahr? entweder ...

  • meine Pfadvariablen richtig gesetzt bekommen

  • die aws cli in der Cygwin-Python-Verzeichnis anstelle der Fenster anaconda Umgebung

leider nur pip uninstall installiert werden hängt, versucht, awscli zu entfernen, und ich weiß nicht, wie man es zwingt, den Cygwin Python zu verwenden, wenn ich sogar deinstallieren/neu installieren könnte. Und nach einigen Versuchen, meine Pfadvariablen zu reparieren, bin ich ratlos.

Jeder Ratschlag geschätzt.

+0

Was ist die Ausgabe von 'PATH ="/usr/bin "; aws --Version'? – matzeri

+1

Da Sie zwei Pythons haben, müssen Sie den PATH jedes Mal so arrangieren, dass sie sich nicht gegenseitig stören. Setzen Sie cygwin nicht in den PATH, wenn Sie den Windows-Python verwenden müssen und setzen Sie den Windows-Python nicht in den PATH, wenn Sie den Cygwin-Python benötigen. PS: 'pip install awscli' funktioniert auch mit einem cygwin pyhton3 nachdem du pip installiert hast. – matzeri

+0

PATH = "/ usr/bin"; aws --version -> -bash: aws: Befehl nicht gefunden – kmh

Antwort

0

Dank matzeri in den Kommentaren oben für mich auf die Lösung zu steuern.

Das Problem war, dass Cygwin hatte seine eigene Python-Version ... aber nicht Pip ... so, wenn ich "Pip-Installation" in Cygwin verwendet, um awscli zu installieren, war es der Windows/Anaconda Pip. die lösung beinhaltete keine befestigungswege, wie mazeri darauf hinwies, es würde das niemals mit pfaden lösen ... es waren diese zwei linien ...

python -m ensurepip # install a cygwin pip 
pip install awscli # to install awscli for cygwin 
1

Hinzufügen mein fix, für Menschen, die dieses Problem konfrontiert sind, in Anacond2

Nachdem Sie anaconda2 installieren, führen Sie diesen Befehl in Cygwin (nehme an, Sie es in c installiert haben: \ anaconda2)

echo "PATH=\$PATH:/cygdrive/c/anaconda2" >> .bash_profile 
echo "PATH=\$PATH:/cygdrive/c/anaconda2/Scripts" >> .bash_profile 
source .bash_profile 

Mehr Infos unter https://www.davidbaumgold.com/tutorials/set-up-python-windows/#installing-cygwin verfügbar

11

Wenn pip install awscli von cygwin ausgeführt wird, kann es awscli installati Anaconda Python in Fensters installieren auf, anstatt in Cygwins Python (was du willst). Dann, wenn Sie aws ausführen, erhalten Sie einen Fehler, dass die aws ausführbare Datei nicht gefunden werden kann. Die Lösung, die ich gefunden wurde nach unten bash python/pip innerhalb Cygwin Installation Befehle von Cygwin-Shell:

pip uninstall awscli 
wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg 
install apt-cyg /bin 
apt-cyg install python 
wget https://bootstrap.pypa.io/get-pip.py 
python get-pip.py 
pip install awscli 

Stellen Sie sicher, in Cygwin installiert haben wget.

+1

Es kann notwendig sein, den Pip (im Gegensatz zu Anacondas) explizit aufzurufen: '/ cygdrive/c/cygwin64/bin/pip' – ChaimKut

4

Nach viel Zeit, die ich damit verbracht habe, habe ich eine Lösung gefunden, die funktioniert.

Das primäre Problem ist, dass die Cygwin nicht mit Python installiert wurde und nicht weiß, wo die vorhandene Windows Anaconda-Version auf Ihrem Computer zu finden ist. Dies kann verifiziert werden, indem which python in cygwin ausgeführt wird - es konnte nicht gefunden werden, wo Python gespeichert wird. Beachten Sie, dass dies verwirrend sein kann, da die Ausführung von pip install awscli wahrscheinlich keine Fehlermeldung auslöst. Cygwin installiert tatsächlich awscli in der Anaconda-Installation von Python (ich finde das merkwürdig, da wir conda install awscli nicht ausgeführt haben).

Doch anstatt zu versuchen, cygwin auf die bereits installierte Version von Anaconda python auf Ihrem Rechner zu verweisen, sparen Sie sich eine Menge Kopfzerbrechen, um eine cygwin-spezifische Instanz von python zu installieren. Die Schritte dazu sind hier dokumentiert: http://wiki.fast.ai/index.php/Awscli_in_cygwin

  1. pip uninstall awscli
  2. wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
  3. install apt-cyg /bin
  4. apt-cyg install python
  5. wget https://bootstrap.pypa.io/get-pip.py
  6. python get-pip.py
  7. pip install awscli

... Beachten Sie jedoch, dass der erste Befehl pip uninstall awscli für mich "aufgelegt" hat. Also fliehen Sie einfach mit quit() davon und fahren Sie mit den anderen in der Reihenfolge fort.

Sie können überprüfen, ob alles funktioniert, wenn Sie in Cygwin which python ausführen, und es zeigt auf die CYGIN-Version (d. H./Usr/bin/python im Gegensatz zu: /users/.../Anaconda2/).

Zusätzlich, wenn Sie dies in Verbindung mit dem Ansehen des Setup-Video für die schnelle fragen.ai natürlich (http://course.fast.ai/lessons/aws.html), dann der nächste Schritt ist CRITICAL für Windows-Benutzer: Wenn Sie alle Shell-Skripts von Github Setup-Ordner (https://github.com/fastai/courses/tree/master/setup) herunterladen, fügt Windows automatisch CRLF-Zeilenabschlusswiderstände! Daher wird in Cygwin, die folgenden Befehle aus, diese Zeilenenden zu entfernen:

  1. apt-cyg install dos2unix
  2. dos2unix setup_p2.sh
  3. dos2unix setup_instance.sh
  4. dann schließlich bash setup_p2.sh

Dies sollte den Trick tun.