在Cygwin中永久设置Anaconda的Pythonpath

我试图在我的Windows 7机器上安装Anaconda。 我经常使用cygwin来执行我的命令行工作,我想从那里pipe理Anaconda。 我已经通过graphics安装程序没有任何问题,并检查必要的框重置我的默认path到这个安装的Python。 我继续检查python在哪里,最初我得到这个…

$ which python /usr/bin/python 

从这里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. 

但是我试图从python那里工作,所以我只需要重新定义我的path…

 $ 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 

我遇到的另一个(可能相关的)问题是每次closures/打开cygwin时需要重置path。 我已经将以下文本input到.bashrc和.profile中,尝试永久设置path:

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

打开和closurescygwin后,我回到:

 $ which python /usr/bin/python 

这可能与设置某些系统环境variables有关吗?

为了在Cygwin中使用交互式Python shell,我使用-i选项。

为了从Anaconda安装,我使用了上面建议的步骤:

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

然后我用-i选项启动Cygwin中的python:

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

图书馆也工作正常。 例如熊猫库(已通过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 

我希望这有帮助。

我也遇到了一个问题,我的Cygwin / Windows 7系统安装了anaconda。 有效的是以下几点:

  1. 编辑〜/ .bashrc。 将以下添加到文件的底部。

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

  2. 这将Cygwin的python映射到anaconda分布,作为证明,通过在Cygwin的控制台中输入which python 。 但是,启动Python时,它会挂断,迫使我跳出命令。 我发现python -i将启动交互式Python解释器没有问题。

康达对cygwin的解释还有另一个问题。 当您为某个环境提供激活脚本时,它会提前例如

/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/Anconda3/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的conda环境,他们应该工作。

路径

有关您的路径问题,请参阅安装anaconda与Windows一起使用以解决该问题。 或者,您可以运行/cygdrive/c/Anaconda/python.exe来启动Anaconda / windows python,并将标准python指向cygwin版本。

请注意,互联网上提供的建议很少包括对PYTHONPATH的必要改变:如果你使用anaconda / windows python,你还需要anaconda python库。 像numpy这样的二进制模块肯定会崩溃,或者如果混合起来,就会变得不合时宜。 检查这个最简单的方法是在Cygwin中安装一个你不需要在Conda中的模块,然后测试你是否可以从anaconda python中导入。 如果可以的话,你的路线是错误的。

Anaconda python会自动将c:\Anconda添加到您的PYTHONPATH中,但是如果您将它设置为服务于CYGWIN python库,则会在Anaconda库之前找到这些库。 尝试

 import sys sys.path 

终奌站

然而,这也是一个终端问题:蟒蛇(Windows)蟒蛇期望一个Windows壳和一个现代的cygwin外壳就像一个xterm ,所以非常不同。 通过运行python --help诊断这个,如果可以的话,但是普通的python挂起,交互式提示符就是问题。 这意味着你可以运行python程序,你只是不能与它们交互。

解决这个问题的方法是使用cygwin bash shell而不是cygwin terminal (两者都在“开始”菜单中的Cygwin组下)。 他们看起来非常相似,但在bash外壳的字体不那么漂亮,你不能让窗口比80个字符更宽(像所有其他的CMD窗口,从来没有理解的'功能')。 这是在CMD窗口内运行的cygwin bash,你的anaconda python将是交互式的。 cygwin terminal给你一个bash shell,运行在一个putty衍生物中,它模仿一个xterm,不能被anaconda python使用。

关于永久设置您的路径, 编辑您的主目录中的.profile (这是一个隐藏的文件)。

.profile(其他名称也是有效的,请参阅bash手册页)包含bash命令。 当bash作为登录shell启动时,它被执行。

在这个文件的底部,把你的设置路径命令:

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

至于为什么蟒蛇挂,请提供更多的信息 – 例如python -v的输出是什么?

我已经有点晚了,但是我遇到了同样的问题,就像@thomasshouler。 尝试将下面的导出行添加到.bash_profile和.profile文件的末尾以及.bashrc文件(如上所述)。 确保为每个文件“源.bash_profile”等。

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

发现对于蟒蛇4,做:

vim /home/[Username]/.bash_profile

追加到最后一行:

PATH = $ PATH:/ cygdrive / C /用户/ [用户名] / Anaconda3 /脚本/

这个解决方案为我工作,因为通常anaconda3 /斌无法找到。