kmh*_*kmh 7 python cygwin aws-cli
我怀疑这是我无法正确设置路径变量,但我不知所措.
我在cygwin中使用pip安装了aws cli.
pip install awscli
Run Code Online (Sandbox Code Playgroud)
我有两个python环境......一个windows anaconda发行版,cygwin可以为你安装.
which python
> /usr/bin/python
where python
> C:\cygwin64\bin\python
> C:\windows-style-path-to-anaconda\python.exe
Run Code Online (Sandbox Code Playgroud)
当我尝试运行aws cli时
aws --version
> C:\windows-style-path-to-anaconda\python.exe: can't open file
> 'cygdrive/c/cygdrive-style-path-to-anaconda/Scripts/aws':
> [Errno 2] No such file or directory'
Run Code Online (Sandbox Code Playgroud)
我已经尝试将aws的路径添加到我的windows路径变量中.没运气.
我已经尝试将其添加到我的.bashrc中
export PATH="$PATH:/cygdrive/c/cygdrive-style-path-to-anaconda/Scripts"
Run Code Online (Sandbox Code Playgroud)
没运气.
我试过修改python试图运行的'aws'.首先我修改了#!指向cygwin python而不是windows python.
#!c:\cygwin64\bin\python
Run Code Online (Sandbox Code Playgroud)
那么它可以找到文件'aws'来运行...但它找不到要导入的任何文件......'awscli.clidriver','botocore._'等.
我尝试修改我的路径变量以指向这些的位置... anaconda/Lib/site-packages ...我甚至尝试在'aws'文件本身中执行sys.path.insert(1,path). ..它解决了这个问题,但它加载的每一个文件都在其他地方查找而没有找到它们,并且在aws .py文件中一次搞乱一个太多的东西.
这是什么样的作品......在cygwin ......
cd /cygdrive/c/cygwin-path-to-anaconda/Scripts
./aws --version
> aws-cli/1.10.26 Python/2.7.11 Windows/7 botocore/1.4.17
Run Code Online (Sandbox Code Playgroud)
但必须有更好的方法,对吗?要么...
让我的路径变量设置正确
获取安装在cygwin python目录中的aws cli而不是windows anaconda环境
不幸的是,pip卸载只是挂起试图删除awscli,我不知道如果我甚至可以卸载/重新安装,如何强制它使用cygwin python.在尝试修复我的路径变量之后,我感到很茫然.
任何建议表示赞赏
Har*_*hne 12
当pip install awscli从cygwin 运行时,它可能会在Window的Anaconda Python安装中安装awscli,而不是在Cygwin的Python中安装(这是你想要的).然后,在运行时aws,您将收到aws无法找到可执行文件的错误.我找到的解决方案是通过以下来自cygwin shell的bash命令在cygwin中安装python/pip:
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
Run Code Online (Sandbox Code Playgroud)
确保你在cygwin中安装了wget.
感谢上面评论中的 matzeri 指导我解决问题。
问题是 cygwin 有它自己的 python 版本...但不是 pip...所以当我在 cygwin 中使用“pip install”来安装 awscli 时,它是 windows/anaconda pip。该解决方案不涉及修复路径,正如 matzeri 指出的那样,它永远不会用路径解决这个问题......就是这两行......
python -m ensurepip # install a cygwin pip
pip install awscli # to install awscli for cygwin
Run Code Online (Sandbox Code Playgroud)