Настроить Python-путь для Anaconda в Cygwin
Я пытаюсь установить Anaconda на мою машину Windows 7. Я часто использую cygwin для моей работы в командной строке, и я хотел бы управлять Anaconda оттуда. Я работал с графическим установщиком без каких-либо проблем и проверил необходимые поля для reset моего пути по умолчанию к этой установке 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.
Но я пытаюсь работать из anaconda, поэтому мне просто нужно переопределить мой путь...
$ export PATH=/cygdrive/c/anaconda:$PATH
$ which python
/cygdrive/c/anaconda/python
И теперь мне должно быть хорошо идти, но когда я пытаюсь войти в python, он просто зависает
$ python
Любая идея, почему это может произойти? verbose return, ниже...
$ 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
Другая (возможно связанная) проблема, с которой я столкнулась, должна быть reset путь каждый раз, когда я закрываю/открываю cygwin. Я ввел следующий текст в .bashrc и .profile, чтобы попытаться установить путь навсегда:
# Set path to python from anaconda install
export PATH=/cygdrive/c/anaconda:$PATH
После открытия и закрытия cygwin я возвращаюсь к:
$ which python
/usr/bin/python
Может ли это быть связано с установкой определенных переменных среды системы?
Ответы
Ответ 1
Чтобы работать с интерактивной оболочкой Python в Cygwin, я использую опцию -i.
Чтобы получить его из установки Anaconda, я использовал описанные выше шаги:
$ export PATH=/cygdrive/c/anaconda:$PATH
$ which python
/cygdrive/c/anaconda/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
Надеюсь, это поможет.
Ответ 2
Путь
Что касается проблемы с вашим пути, см. Установка 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 и не может использоваться python anaconda.
Ответ 3
У меня тоже возникла проблема с установкой anaconda с моей системой Cygwin/Windows 7. Что работало, было следующее:
-
Отредактировано ~/.bashrc. Добавьте ниже внизу файла.
export PATH=/cygdrive/c/Anaconda:$PATH
-
Этот отображаемый питон Cygwin для дистрибуции анаконды является доказательством, введя which python
в консоли Cygwin. Однако при запуске python он зависает, заставляя меня выходить из команды. Я обнаружил, что python -i
запускает интерактивный интерпретатор python без проблем.
Ответ 4
Есть еще одна проблема с кондой-интерпретацией cygwin. Когда вы запускаете активацию script для среды, она добавляет, например,
/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
к вашему PATH. Однако это не правильные каталоги в cygwin.
Я исправил это с помощью
ln -s /cygdrive/c /C
а затем, если вы создаете среды конды с определенными версиями python, они должны работать.
Ответ 5
Что касается постоянной установки пути, отредактируйте .profile в своем домашнем каталоге (это скрытый файл).
.profile(другие имена также действительны, см. справочную страницу bash) содержат команды bash. Он выполняется, когда bash запускается как оболочка входа.
В нижней части этого файла введите команду set path:
export PATH=/cygdrive/c/anaconda:$PATH
Что касается того, почему python висит, просьба предоставить дополнительную информацию - например, какой результат python -v
?
Ответ 6
Я немного поздно прихожу к этому, но у меня была такая же проблема, как у вас @thomasshouler. Попробуйте добавить строку экспорта ниже в конец .bash_profile и .profile файлов, а также ваш .bashrc файл (как упоминалось выше). Убедитесь, что "источник .bash_profile" и т.д. Для каждого файла.
export PATH=/cygdrive/c/anaconda:$PATH
Ответ 7
Обнаружил, что для Anaconda 4, сделайте:
vim /home/[Username]/.bash_profile
Добавить к последней строке:
PATH=$PATH:/cygdrive/c/Users/[Username]/Anaconda3/Scripts/
Это решение сработало для меня, так как обычная anaconda3/bin не была найдена.
Ответ 8
Как только путь Cygwin обновлен, как упомянуто выше, вы также можете добавить псевдоним в файл .bashrc:
alias python='python -i'
Это вызовет интерпретатор Python Anaconda в интерактивном режиме из командной строки Cygwin bash.