我正在使用最新的Win10操作系统。在安装了AWS-SAM-CLI并测试了安装后,我发现:
sam --version
我收到了消息
bash: sam: 命令未找到
然而,当我使用 Powershell、cmd 或 ConEmu 时,它们都可以解析“sam”。
路径为“e/Program Files/Amazon/AWSSAMCLI/bin”,但其他命令,如“yarn”,也正常工作,这些命令同样被安装在“e/Program Files/...”中。
有任何想法吗?谢谢
我正在使用最新的Win10操作系统。在安装了AWS-SAM-CLI并测试了安装后,我发现:
sam --version
我收到了消息
bash: sam: 命令未找到
然而,当我使用 Powershell、cmd 或 ConEmu 时,它们都可以解析“sam”。
路径为“e/Program Files/Amazon/AWSSAMCLI/bin”,但其他命令,如“yarn”,也正常工作,这些命令同样被安装在“e/Program Files/...”中。
有任何想法吗?谢谢
sam.cmd --version
SAM CLI 的 Windows 版本没有直接的可执行二进制文件。相反,它是一个 .cmd 脚本,将您的选项回显到 Python 可执行文件中。
@rem
@echo off
setlocal
"%~dp0/../runtime/python.exe" -m samcli %*
我还没想出如何让它正常工作
sam --version
我的假设是,PowerShell 和命令提示符将 .cmd 视为可执行文件,不需要扩展名,而 Git Bash 则不会这样。
alias sam='sam.cmd'
,现在一切都很顺利。 :) - isaacsan 123以下是我如何使用别名使其正常工作的方法。
alias sam="/c/Program\ Files/Amazon/AWSSAMCLI/bin/sam.cmd"
$ vi ~/.bashrc # or favorite editor
地址:
alias sam='sam.cmd'
接着:
$ source ./.bashrc # can use '. ./.bashrc
虽然在命令行直接调用sam
时别名有效,但在我使用的脚本中无法工作。
为了解决这个问题,我发现需要添加一个shell脚本等效于安装的.cmd
脚本,命名为sam
,放在相同的文件夹中,通常是C:\Program Files\Amazon\AWSSAMCLI\bin
:
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
"$basedir/../runtime/python.exe" -m samcli "$@"
ret=$?
exit $ret
2. 检查您正在使用的Python版本。SAM CLI需要Python 3.6或更高版本。您可以通过运行命令python --version来检查Python版本。如果您正在使用早期版本的Python,则需要升级到较新的版本。pip uninstall aws-sam-cli pip install aws-sam-cli
echo 'alias sam="sam.cmd"' >> ~/.bashrc
;关于此的更多想法请参考这里。 - mud