it-swarm.com.de

Festlegen des Python-Pfads für Anaconda innerhalb von Cygwin

Ich versuche Anaconda auf meinem Windows 7-Rechner zu installieren. Ich benutze oft cygwin für meine Kommandozeilen-Arbeit, und ich möchte Anaconda von dort aus verwalten. Ich habe das Grafikinstallationsprogramm ohne Probleme durchgearbeitet und die erforderlichen Kontrollkästchen aktiviert, um meinen Standardpfad auf diese Installation von Python zurückzusetzen. Ich gehe weiter, um zu sehen, wo Python ist und ich bekomme anfangs ...

$ which python
/usr/bin/python

Von hier aus funktioniert Python gut ...

$ python
Python 2.7.5 (default, Oct  2 2013, 22:34:09)
[GCC 4.8.1] on cygwin
Type "help", "copyright", "credits" or "license" for more information.

Aber ich versuche mit Anaconda zu arbeiten, also muss ich einfach meinen Weg neu definieren ...

$ export PATH=/cygdrive/c/anaconda:$PATH
$ which python
/cygdrive/c/anaconda/python

Und jetzt sollte ich gut sein, aber wenn ich versuche, in Python einzusteigen, hängt es einfach

$ python

Irgendeine Idee, warum das passieren könnte? ausführliche Rückkehr, unten ...

$ python -v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# C:\anaconda\lib\site.pyc matches C:\anaconda\lib\site.py
import site # precompiled from C:\anaconda\lib\site.pyc
# C:\anaconda\lib\os.pyc matches C:\anaconda\lib\os.py
import os # precompiled from C:\anaconda\lib\os.pyc
import errno # builtin
import nt # builtin
# C:\anaconda\lib\ntpath.pyc matches C:\anaconda\lib\ntpath.py
import ntpath # precompiled from C:\anaconda\lib\ntpath.pyc
# C:\anaconda\lib\stat.pyc matches C:\anaconda\lib\stat.py
import stat # precompiled from C:\anaconda\lib\stat.pyc
# C:\anaconda\lib\genericpath.pyc matches C:\anaconda\lib\genericpath.py
import genericpath # precompiled from C:\anaconda\lib\genericpath.pyc
# C:\anaconda\lib\warnings.pyc matches C:\anaconda\lib\warnings.py
import warnings # precompiled from C:\anaconda\lib\warnings.pyc
# C:\anaconda\lib\linecache.pyc matches C:\anaconda\lib\linecache.py
import linecache # precompiled from C:\anaconda\lib\linecache.pyc
# C:\anaconda\lib\types.pyc matches C:\anaconda\lib\types.py
import types # precompiled from C:\anaconda\lib\types.pyc
# C:\anaconda\lib\UserDict.pyc matches C:\anaconda\lib\UserDict.py
import UserDict # precompiled from C:\anaconda\lib\UserDict.pyc
# C:\anaconda\lib\_abcoll.pyc matches C:\anaconda\lib\_abcoll.py
import _abcoll # precompiled from C:\anaconda\lib\_abcoll.pyc
# C:\anaconda\lib\abc.pyc matches C:\anaconda\lib\abc.py
import abc # precompiled from C:\anaconda\lib\abc.pyc
# C:\anaconda\lib\_weakrefset.pyc matches C:\anaconda\lib\_weakrefset.py
import _weakrefset # precompiled from C:\anaconda\lib\_weakrefset.pyc
import _weakref # builtin
# C:\anaconda\lib\copy_reg.pyc matches C:\anaconda\lib\copy_reg.py
import copy_reg # precompiled from C:\anaconda\lib\copy_reg.pyc
# C:\anaconda\lib\traceback.pyc matches C:\anaconda\lib\traceback.py
import traceback # precompiled from C:\anaconda\lib\traceback.pyc
# C:\anaconda\lib\sysconfig.pyc matches C:\anaconda\lib\sysconfig.py
import sysconfig # precompiled from C:\anaconda\lib\sysconfig.pyc
# C:\anaconda\lib\re.pyc matches C:\anaconda\lib\re.py
import re # precompiled from C:\anaconda\lib\re.pyc
# C:\anaconda\lib\sre_compile.pyc matches C:\anaconda\lib\sre_compile.py
import sre_compile # precompiled from C:\anaconda\lib\sre_compile.pyc
import _sre # builtin
# C:\anaconda\lib\sre_parse.pyc matches C:\anaconda\lib\sre_parse.py
import sre_parse # precompiled from C:\anaconda\lib\sre_parse.pyc
# C:\anaconda\lib\sre_constants.pyc matches C:\anaconda\lib\sre_constants.py
import sre_constants # precompiled from C:\anaconda\lib\sre_constants.pyc
# C:\anaconda\lib\locale.pyc matches C:\anaconda\lib\locale.py
import locale # precompiled from C:\anaconda\lib\locale.pyc
import encodings # directory C:\anaconda\lib\encodings
# C:\anaconda\lib\encodings\__init__.pyc matches C:\anaconda\lib\encodings\__init__.py
import encodings # precompiled from C:\anaconda\lib\encodings\__init__.pyc
# C:\anaconda\lib\codecs.pyc matches C:\anaconda\lib\codecs.py
import codecs # precompiled from C:\anaconda\lib\codecs.pyc
import _codecs # builtin
# C:\anaconda\lib\encodings\aliases.pyc matches C:\anaconda\lib\encodings\aliases.py
import encodings.aliases # precompiled from C:\anaconda\lib\encodings\aliases.pyc
import operator # builtin
# C:\anaconda\lib\functools.pyc matches C:\anaconda\lib\functools.py
import functools # precompiled from C:\anaconda\lib\functools.pyc
import _functools # builtin
import _locale # builtin
# C:\anaconda\lib\encodings\cp1252.pyc matches C:\anaconda\lib\encodings\cp1252.py
import encodings.cp1252 # precompiled from C:\anaconda\lib\encodings\cp1252.pyc
# zipimport: found 13 names in C:\anaconda\lib\site-packages\runipy-0.1.0-py2.7.Egg
# zipimport: found 144 names in C:\anaconda\lib\site-packages\setuptools-3.6-py2.7.Egg
Python 2.7.7 |Anaconda 2.0.1 (64-bit)| (default, Jun 11 2014, 10:40:02) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and htt

Ein weiteres (möglicherweise verwandtes) Problem, das ich habe, muss den Pfad jedes Mal neu einstellen, wenn ich cygwin schließe/öffne. Ich habe den folgenden Text in .bashrc und .profile eingegeben, um zu versuchen, den Pfad dauerhaft festzulegen:

# Set path to python from anaconda install
export PATH=/cygdrive/c/anaconda:$PATH

Nach dem Öffnen und Schließen von cygwin gehe ich zurück zu:

$ which python
/usr/bin/python

Könnte dies mit dem Einstellen bestimmter Systemumgebungsvariablen zusammenhängen?

25
thomasshouler

Um mit der interaktiven Python-Shell in Cygwin zu arbeiten, verwende ich die Option -i.

Um es von der Anaconda-Installation zu erhalten, habe ich die oben vorgeschlagenen Schritte verwendet:

$ export PATH=/cygdrive/c/anaconda:$PATH
$ which python
/cygdrive/c/anaconda/python

Dann starte ich Python in Cygwin mit der Option -i:

$ python -i
Python 2.7.8 |Anaconda 2.1.0 (64-bit)| (default, Jul  2 2014, 15:12:11) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>>>

Die Bibliotheken funktionieren auch gut. Zum Beispiel kann die Pandas-Bibliothek (die über Anaconda installiert wurde) jetzt importiert werden.

>>>> import pandas
>>>> pandas.DataFrame
<class 'pandas.core.frame.DataFrame'>

Um dies dauerhaft zu machen, habe ich den Pfad in meine bashrc-Datei eingefügt:

$ echo 'export PATH=/cygdrive/c/anaconda:$PATH' >> .bashrc
$ source .bashrc
$ which python
/cygdrive/c/anaconda/python

Ich hoffe das hilft.

27
SchizoBean

Pfad

Informationen zum Pfadproblem finden Sie unter Installieren von Anaconda zur Verwendung mit Windows , um das Problem zu beheben. Alternativ können Sie einfach /cygdrive/c/Anaconda/python.exe ausführen, um den Anaconda/windows-Python zu starten und den Standard python auf die cygwin-Version verweisen lassen.

Beachten Sie, dass einige der im Internet gemachten Vorschläge auch die erforderliche Änderung von PYTHONPATH enthalten: Wenn Sie den Anaconda/Windows-Python verwenden, möchten Sie auch die Anaconda-Python-Bibliotheken. Binäre Module wie numpy werden sicher abstürzen oder sich schlecht benehmen, wenn Sie die Dinge vermischen. Am einfachsten überprüfen Sie dies, indem Sie ein Modul in cygwin installieren, das Sie nicht in Conda benötigen, und testen, ob Sie dieses aus Anaconda Python importieren können. Wenn Sie können, ist Ihr Weg falsch. 

Anaconda-Python fügt automatisch c:\Anconda zu Ihrem PYTHONPATH hinzu. Wenn Sie jedoch CYGWIN-Python-Bibliotheken verwenden möchten, werden diese vor den Anaconda-Bibliotheken gefunden. Versuchen

import sys
sys.path

Terminal

Dies ist jedoch auch ein Problem mit dem Terminal: Anaconda (Windows) python erwartet eine Windows-Shell und eine moderne Cygwin-Shell ist wie eine xterm, also sehr unterschiedlich. Diagnostizieren Sie dies, indem Sie python --help ausführen. Wenn dies funktioniert, aber python einfach hängt, ist die interaktive Aufforderung das Problem. Das bedeutet, dass Sie Python-Programme ausführen können. Sie können einfach nicht mit ihnen interagieren.

Um dies zu umgehen, verwenden Sie den cygwin bash Shell anstelle des cygwin terminal (beide befinden sich unter der Cygwin-Gruppe im Startmenü). Sie sehen sehr ähnlich aus, aber die Schriftart in der Bash-Shell ist weniger hübsch und Sie können das Fenster nicht breiter als 80 Zeichen machen (wie bei allen anderen CMD-Fenstern wurde dieses "Feature" nie verstanden). Dies ist eine Cygwin-Bash, die in einem CMD-Fenster ausgeführt wird, und Ihr Anaconda-Python wird interaktiv sein. Der cygwin terminal gibt Ihnen eine Bash-Shell, die in einem PuTTY-Derivat ausgeführt wird, das ein Xterm nachahmt und nicht von Anaconda-Python verwendet werden kann. 

2
dirkjot

Ein weiteres Problem besteht bei der Interpretation von Cygwin durch Conda. Wenn Sie das Aktivierungsskript für eine Umgebung beziehen, wird es z.

/C/Users/Thomas.Harris/AppData/Local/Continuum/Anaconda3/envs/blah
/C/Users/Thomas.Harris/AppData/Local/Continuum/Anaconda3/envs/blah/Library/mingw-w64/bin /C/Users/Thomas.Harris/AppData/Local/Continuum/Anaconda3/envs/blah/Library/usr/bin
/C/Users/Thomas.Harris/AppData/Local/Continuum/Anaconda3/envs/blah/Library/bin
/C/Users/Thomas.Harris/AppData/Local/Continuum/Anaconda3/envs/blah/Scripts 

zu deinem PFAD. Dies sind jedoch keine richtigen Verzeichnisse in cygwin.

Ich habe das mit behoben 

ln -s /cygdrive/c /C

wenn Sie dann Conda-Umgebungen mit bestimmten Python-Versionen erstellen, sollten sie funktionieren.

2
TKH

Ich hatte auch ein Problem damit, dass Anaconda mit meinem Cygwin/Windows 7-System eingerichtet wurde. Was funktioniert hat war folgendes:

  1. Editierte die ~/.bashrc. Fügen Sie unten am Ende der Datei hinzu. 

    export PATH=/cygdrive/c/Anaconda:$PATH

  2. Dies ordnete Cygwins Python der Anaconda-Distribution als Beweis zu, indem which python in Cygwins Konsole eingegeben wird. Beim Starten von Python würde ich auflegen und mich zwingen, den Befehl zu beenden. Ich habe festgestellt, dass python -i den interaktiven Python-Interpreter ohne Probleme startet.

2
SciGuyMcQ

Wenn Sie Ihren Pfad dauerhaft festlegen möchten, müssen Sie Bearbeiten Sie das .profile in Ihrem Basisverzeichnis (es handelt sich um eine versteckte Datei).

.profile (andere Namen sind auch gültig, siehe Bash-Manpage) enthält Bash-Befehle. Es wird ausgeführt, wenn Bash als Login-Shell gestartet wird.

Fügen Sie am Ende dieser Datei den Befehl set path ein:

export PATH=/cygdrive/c/anaconda:$PATH

Geben Sie weitere Informationen an, warum Python hängt. Geben Sie beispielsweise an, was python -v ausgegeben wird.

0
Martin Konecny

Fand das für Anaconda 4:

vim /home/[BenutzerName//bash_profile

An die letzte Zeile anfügen:

PATH = $ PATH:/cygdrive/c/Users/[Benutzername]/Anaconda3/Scripts /

Diese Lösung funktionierte für mich, da die üblichen anaconda3/bin nicht gefunden werden konnten.

0
matthew

Ich bin etwas spät dran, aber ich hatte das gleiche Problem wie du @ thomasshouler. Fügen Sie die Exportzeile unten am Ende der Dateien .bash_profile und .profile sowie Ihrer .bashrc-Datei hinzu (wie oben erwähnt). Stellen Sie sicher, dass für jede Datei "source.bash_profile" usw. angegeben ist.

export PATH=/cygdrive/c/anaconda:$PATH
0
Nicholas Fasolt

Sobald der Cygwin-Pfad wie oben erwähnt aktualisiert wurde, können Sie der .bashrc-Datei auch einen Alias ​​hinzufügen:

alias python='python -i'

Dadurch wird der Anaconda-Python-Interpreter von einem Cygwin-Bash-Prompt im interaktiven Modus aufgerufen

0
Marc Compere