我下载了Cygwin和Python 2.5版。现在我要在aws上建立一个深度学习计算机(遵循本教程:https://www.youtube.com/watch?v=8rjRfW4JM2I)
如果我运行pip install awscli,我会得到这个(这很好)
$ pip install awscli
Requirement already satisfied: awscli in c:\users\marc\anaconda2 \lib\site-packages
Requirement already satisfied: s3transfer<0.2.0,>=0.1.9 in c:\users\marc\anaconda2\lib\site-packages (from awscli)
Requirement already satisfied: rsa<=3.5.0,>=3.1.2 in c:\users\marc\anaconda2\lib\site-packages (from awscli)
Requirement already satisfied: PyYAML<=3.12,>=3.10 in c:\users\marc\anaconda2\lib\site-packages (from awscli)
Requirement already satisfied: docutils>=0.10 in c:\users\marc\anaconda2\lib\site-packages (from awscli)
Requirement already satisfied: botocore==1.4.92 in c:\users\marc\anaconda2\lib\site-packages (from awscli)
Requirement already satisfied: colorama<=0.3.7,>=0.2.5 in c:\users\marc\anaconda2\lib\site-packages (from awscli)
Requirement already satisfied: futures<4.0.0,>=2.2.0; python_version == "2.6" or python_version == "2.7" in c:\users\marc\anaconda2\lib\site- packages (from s3transfer<0.2.0,>=0.1.9->awscli)
Requirement already satisfied: pyasn1>=0.1.3 in c:\users\marc\anaconda2\lib\site-packages (from rsa<=3.5.0,>=3.1.2->awscli)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in c:\users\marc\anaconda2\lib\site-packages (from botocore==1.4.92->awscli)
Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in c:\users\marc\anaconda2\lib\site-packages (from botocore==1.4.92->awscli)
Requirement already satisfied: six>=1.5 in c:\users\marc\anaconda2\lib\site-packages (from python-dateutil<3.0.0,>=2.1->botocore==1.4.92->awscli)
但是,当我想配置所有内容并输入aws时,我得到:
$ aws
C:\Users\Marc\Anaconda2\python.exe: can't open file '/cygdrive/c/Users/Marc/Anaconda2/Scripts/aws': [Errno 2] No such file or directory
答案 0 :(得分:5)
花了很多时间,我发现了一个有效的解决方案。
主要问题是cygwin没有安装python,也不知道在你的机器上找到现有Windows Anaconda版本的位置。这可以通过从cygwin中运行哪个python来验证 - 它无法找到python的保存位置。请注意,这可能会造成混淆,因为运行pip install awscli可能不会抛出错误消息。 Cygwin实际上在Window的Anaconda Python安装中安装了awscli(我发现这很奇怪,因为我们没有运行conda install awscli)。
然而,不是试图将cygwin指向你机器上已安装的Anaconda python版本,它将为你安装一个特定于cygwin的python实例节省大量的麻烦。这样做的步骤记录在此:http://wiki.fast.ai/index.php/Awscli_in_cygwin)
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
...但请注意,第一个命令pip uninstall awscli
&#34;挂断了&#34;为了我。所以只需使用quit()
逃脱它,并按顺序继续其他。
如果你在cygwin中运行which python
并且它指向cygin版本(即/ usr / bin / python,而不是:/users /.../Anaconda2/),你可以检查一切是否有效。
此外,如果你碰巧在观看fast.ai课程(http://course.fast.ai/lessons/aws.html)的设置视频的同时问这个,那么下一步是 CRITICAL < / strong>对于Windows用户:当您从Github安装文件夹(https://github.com/fastai/courses/tree/master/setup)下载所有shell脚本时,Windows会自动添加CRLF行终止符!因此,在cygwin中,运行以下命令以删除这些行结尾:
apt-cyg install dos2unix
dos2unix setup_p2.sh
dos2unix setup_instance.sh
bash setup_p2.sh
这应该可以解决问题。
答案 1 :(得分:5)
我跟Ryan Chase的答案走了正轨(但由于stackoverflow的信用不足,我无法评论他的回答)
在第4步之后:LinkedHashSet
,
apt-cyg install python
会返回所需的which python
。
但是,从cygwin运行usr/bin/python
仍然打开了我的本地anaconda python而不是cygwin python。
我最终使用了这个工作流程:
python -i
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
/bin/python ~/get-pip.py
/bin/pip install awscli
等。所以每次都使用/bin/aws
强制cygwin使用它的本地版程序。这很麻烦,也许我会研究一下更好的方法让cygwin更喜欢它自己的版本的python而不是anaconda版本。
我还需要将设置文件从windows更改为unix样式,所以:
/bin/...
apt-cyg install dos2unix
dos2unix setup_p2.sh
dos2unix setup_instance.sh
答案 2 :(得分:2)
普通的简单点子和awscli安装
$curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
$python get-pip.py
$pip install awscli --upgrade
.
.
.
$aws dms help
C:\python35\python.exe: can't open file '/cygdrive/c/Python35/Scripts/aws': [Errno 2] No such file or directory
d&#39;哦!错误中的路径表示windows python路径优先于我的执行路径中所需的cygwin python路径
$echo $PATH
/usr/local/bin:/usr/bin:/cygdrive/c/Python35/Scripts:/cygdrive/c/Python35:/cygdrive/c/OBASE/11gR2x32/bin:/cygdrive/c/OBASE/11gR2x64/bin:/cygdrive/c/OBASE12/12cR1x64/bin:/cygdrive/c/OBASE12/12cR1x32/bin:/cygdrive/c/ProgramData/Oracle/Java/javapath:/cygdrive/c/Program Files (x86)/IBM/WebSphere MQ/Java/lib:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/WINDOWS/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files (x86)/IBM/WebSphere MQ/bin64:/cygdrive/c/Program Files (x86)/IBM/WebSphere MQ/bin:/cygdrive/c/Program Files (x86)/IBM/WebSphere MQ/tools/c/samples/bin:/cygdrive/c/windows/system32/11g:/cygdrive/c/windows/system32/12c:/cygdrive/c/Program Files (x86)/Verint/Playback:/cygdrive/c/Program Files/Amazon/AWSCLI:/cygdrive/c/Users/r608182/AppData/Local/Microsoft/WindowsApps:/usr/lib/lapack:/cygdrive/c/Program/bin:/cygdrive/c/Program Files/Java/jdk1.8.0_144/:wq/bin:/cygdrive/c/Program Files/Java/jdk1.8.0_144//bin
我从执行路径中删除了两个可疑的执行路径罪魁祸首 [编辑foo并删除/ cygdrive / c / Python35 / Scripts和/ cygdrive / c / Python35并保存foo]
$echo $PATH > foo
$vi foo
[删除了罪魁祸首条目的重置路径]
$export PATH=`cat foo`
并且简单,因为所有这一切都与世界同步
$ aws dms help
dms
^^^
Description
***********
AWS Database Migration Service (AWS DMS) can migrate your data...
您希望将此执行路径修复程序放入.bashrc中,以便永久
答案 3 :(得分:1)
尝试此操作(例如,如果您的计算机上已在c:\ anaconda2上安装了anacond2)
echo "PATH=\$PATH:/cygdrive/c/anaconda2" >> .bash_profile
echo "PATH=\$PATH:/cygdrive/c/anaconda2/Scripts" >> .bash_profile
source .bash_profile
https://www.davidbaumgold.com/tutorials/set-up-python-windows/#installing-cygwin
提供更多信息答案 4 :(得分:0)
基本问题是Python的Windows安装在PATH中并与cygwin python冲突(如果/当你安装它时)。
最完整的答案来自上面的Wouter van Amsterdam。但是,如果像我一样你不关心Windows python然后只是转到Windows“添加或删除程序”并卸载Python。然后在cygwin命令行上使用apt-cyg
安装Python,然后pip
然后awscli
。
如果您有Windows python并且在cygwin命令行上安装awscli(或任何python包),那么根据您的PATH和PYTHONPATH等,您可能仍然最终将其安装到Python的Windows安装中。这是造成OP问题的原因。