Настроить Python-путь для Anaconda в Cygwin

Я пытаюсь установить Anaconda на моем компьютере с Windows 7. Я часто использую cygwin для моей работы в командной строке, и я хотел бы управлять Anaconda оттуда. Я работал с графическим установщиком без каких-либо проблем и проверил необходимые поля, чтобы сбросить мой путь по умолчанию к этой установке python. Я продолжаю проверять, где находится python, и изначально я получаю это …

$ which python /usr/bin/python 

Отсюда питон работает отлично …

 $ 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. 

Но я пытаюсь работать из анаконды, поэтому мне нужно просто переопределить мой путь …

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

И теперь мне должно быть хорошо идти, но когда я пытаюсь войти в python, он просто зависает

 $ python 

Любая идея, почему это может произойти? вербальное возвращение, ниже …

 $ 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 

Другая (возможно связанная) проблема, с которой я столкнулась, требует сброса пути каждый раз, когда я закрываю / открываю cygwin. Я ввел следующий текст в .bashrc и .profile, чтобы попытаться установить путь навсегда:

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

После открытия и закрытия cygwin я возвращаюсь к:

 $ which python /usr/bin/python 

Может ли это быть связано с установкой определенных переменных среды системы?

Для работы с интерактивной оболочкой Python в Cygwin я использую опцию -i.

Чтобы получить его из установки Anaconda, я использовал описанные выше шаги:

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

Затем я запускаю python в Cygwin с опцией -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 >>>> 

Библиотеки также отлично работают. Например, теперь можно импортировать библиотеку pandas (которая была установлена ​​через Anaconda).

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

Теперь, чтобы сделать это постоянным, я добавил путь в файл bashrc:

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

Надеюсь, это поможет.

У меня тоже возникла проблема с созданием anaconda с моей системой Cygwin / Windows 7. Что получилось:

  1. Отредактировано ~ / .bashrc. Добавьте ниже внизу файла.

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

  2. Это отобразило питон Cygwin в дистрибутив анаконды как доказательство, введя which python в консоли Cygwin. Однако при запуске python он зависает, заставляя меня выходить из команды. Я обнаружил, что python -i запустит интерактивный интерпретатор python без проблем.

Существует еще одна проблема с интерпретацией китов cydwin. Когда вы запускаете сценарий активации для среды, он, например, добавляет

/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 / бен
/C/Users/Thomas.Harris/AppData/Local/Continuum/Anaconda3/envs/blah/Library/bin
/C/Users/Thomas.Harris/AppData/Local/Continuum/Anaconda3/envs/blah/Scripts

к вашей ПУТЬ. Однако это не правильные каталоги в cygwin.

Я исправил это с помощью

ln -s /cygdrive/c /C

а затем, если вы создаете среды конда с конкретными версиями python, они должны работать.

Дорожка

Что касается проблемы с вашим пути, см. Раздел Установка anaconda для использования с окнами о том, как это исправить. Кроме того, вы можете просто запустить /cygdrive/c/Anaconda/python.exe чтобы запустить python Anaconda / windows и оставить стандартный python указывающий на версию cygwin.

Обратите внимание, что некоторые предложения, приведенные в Интернете, также включают в себя необходимые изменения для PYTHONPATH : если вы используете python anaconda / windows, вам также нужны библиотеки python anaconda. Двоичные модули, такие как numpy , наверняка будут разбиваться или ошибочно, если вы будете смешивать вещи. Самый простой способ проверить это – установить модуль в cygwin, который вам не нужен в Conda, и проверить, можете ли вы импортировать его из anaconda python. Если вы можете, ваш путь неправильный.

Anaconda python автоматически добавит c:\Anconda к вашему PYTHONPATH, но если вы настроите его на использование библиотек python CYGWIN, они будут найдены перед библиотеками Anaconda. Пытаться

 import sys sys.path 

Терминал

Тем не менее, это также проблема термина: Anaconda (Windows) python ожидает, что оболочка Windows и современная оболочка cygwin будут похожи на xterm , поэтому очень разные. Диагностируйте это, запустив python --help , если это работает, но простой python зависает, это интерактивная подсказка. Это означает, что вы можете запускать программы python, вы просто не можете взаимодействовать с ними.

Путь к этому заключается в использовании cygwin bash shell вместо cygwin terminal (оба находятся в группе Cygwin в меню «Пуск»). Они выглядят очень похожими, но шрифт в оболочке bash менее симпатичен, и вы не можете сделать окно шире, чем 80 символов (как и все другие окна CMD, никогда не понимали эту функцию). Это cygwin bash работает внутри CMD-окна, а ваш anaconda python будет интерактивным. cygwin terminal дает вам оболочку bash, запущенную в производной шпатлевки, которая имитирует xterm и не может использоваться anaconda python.

Что касается установки вашего пути навсегда, отредактируйте файл .profile в своем домашнем каталоге (это скрытый файл).

.profile (другие имена также действительны, см. страницу bash man) содержит команды bash. Он выполняется, когда bash запускается как оболочка входа.

В нижней части этого файла введите команду set path:

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

Что касается того, почему python висит, предоставьте дополнительную информацию – например, что такое вывод python -v ?

Я немного поздно прихожу к этому, но у меня была такая же проблема, как у вас @thomasshouler. Попробуйте добавить строку экспорта ниже в конец .bash_profile и .profile файлов, а также ваш .bashrc файл (как упоминалось выше). Не забудьте указать «источник .bash_profile» и т. Д. Для каждого файла.

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

Найдено, что для Anaconda 4, выполните:

vim /home/[Username]/.bash_profile

Добавить к последней строке:

PATH = $ PATH: / cygdrive / с / Users / [Имя пользователя] / Anaconda3 / Scripts /

Это решение работало для меня, поскольку обычный anaconda3 / bin не мог быть найден.