在cygwin上配置aws时没有这样的文件或目录错误

Fri*_*ten 5 cygwin amazon-web-services

我下载了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)
Run Code Online (Sandbox Code Playgroud)

但是,当我想配置所有内容并输入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
Run Code Online (Sandbox Code Playgroud)

Rya*_*ase 6

花了很多时间在这上面之后,我发现了一个有效的解决方案.

主要问题是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)

  1. pip uninstall awscli
  2. wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
  3. install apt-cyg /bin
  4. apt-cyg install python
  5. wget https://bootstrap.pypa.io/get-pip.py
  6. python get-pip.py
  7. pip install awscli

但是请注意,第一个命令pip uninstall awscli"挂了"给我.因此,只需逃避使用quit()并继续按顺序排列其他人.

你可以检查一切是否有效,如果你which python在cygwin中运行它指向cygin版本(即/ usr/bin/python,而不是:/users/.../Anaconda2/).

另外,如果你碰巧在观看fast.ai课程(http://course.fast.ai/lessons/aws.html)的设置视频的同时问这个问题,那么对于Windows用户来说,下一步是CRITICAL:当您从Github安装文件夹(https://github.com/fastai/courses/tree/master/setup)下载所有shell脚本时,Windows会自动添加CRLF行终止符!因此,在cygwin中,运行以下命令以删除这些行结尾:

  1. apt-cyg install dos2unix
  2. dos2unix setup_p2.sh
  3. dos2unix setup_instance.sh
  4. 最后, bash setup_p2.sh

这应该可以解决问题.


Wou*_*dam 6

我跟Ryan Chase的答案走了正轨(但由于stackoverflow的信用不足,我无法评论他的回答)

在第4步之后:apt-cyg install python, which python将返回所需的usr/bin/python.然而,python -i从cygwin 运行仍然打开我的本地anaconda python而不是cygwin python.

我最终使用了这个工作流程:

  1. pip uninstall awscli
  2. wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
  3. install apt-cyg /bin
  4. apt-cyg install python
  5. wget https://bootstrap.pypa.io/get-pip.py
  6. /bin/python ~/get-pip.py
  7. /bin/pip install awscli
  8. /bin/aws

所以每次都/bin/...用来迫使cygwin使用它的本地版程序.这非常麻烦,也许我会研究一下更好的方法让cygwin更喜欢它自己的版本的python而不是anaconda版本.

我还需要将安装文件从windows更改为unix样式,因此:

  1. apt-cyg install dos2unix
  2. dos2unix setup_p2.sh
  3. dos2unix setup_instance.sh
  4. then finally, bash setup_p2.sh


vir*_*ous 1

试试这个(例如,如果您的计算机上已在 c:\anaconda2 安装了 anacond2)

echo "PATH=\$PATH:/cygdrive/c/anaconda2" >> .bash_profile
echo "PATH=\$PATH:/cygdrive/c/anaconda2/Scripts" >> .bash_profile
source .bash_profile 
Run Code Online (Sandbox Code Playgroud)

更多信息请访问https://www.davidbaumgold.com/tutorials/set-up-python-windows/#installing-cygwin

  • 尝试在 anaconda 脚本目录中运行 aws...所以 cd /cygdrive/c/users\Marc\Anaconda2\Scripts 然后运行 ​​python aws (2认同)
  • @maheshmadhusudanan 啊,我明白了!因此 aws 不会保存为可执行文件 (.exe)。因此,如果我“cd”到脚本位置(保存 aws 的位置),我必须专门输入“python aws”。或者,输入 `./aws` 也可以,因为 `./` 部分表示“查找适当的可执行文件(即 python)来运行此脚本。 (2认同)