CodeDeploy 因错误 Errno::ENOEXEC 而失败,并显示消息 Exec 格式错误
CodeDeploy failing with error Errno::ENOEXEC with message Exec format error
我有一个 CodeDeploy,它在 Windows 个实例上部署应用程序。我有一个 Python 脚本,它是 运行 作为 ValidateService
挂钩的一部分。下面是我在该脚本中的代码:
print("hello")
所以,我删除了所有内容,只打印 hello
作为此脚本的一部分。当 CodeDeploy 调用此脚本时,出现以下错误:
我的 appspec.yml
文件:
...
ValidateService:
- location: scripts/verify_deployment.py
timeout: 900
我尝试在 Google 上寻求帮助,但一无所获。有人可以帮我吗。
谢谢
正如 Marcin 已经在评论中回答的那样,我认为您不能在 CodeDeploy 中简单地 运行 python 脚本。至少不是原生的。
您看到的错误表示Windows不知道如何执行您提供的脚本。 AFAIK Windows 不能 运行 python 本机(就像大多数 linux 发行版一样)。
我不是很习惯CodeDeploy,但鉴于https://github.com/aws-samples/aws-codedeploy-samples/tree/master/applications/SampleApp_Windows的例子,我认为你必须先安装python。
经过大量调查,我找到了答案。这个问题有点误导,与代码格式或 ENOEXEC 无关。问题是由于 Python 路径。在执行我的脚本时,CodeDeploy 无法找到 Python(虽然我已经在环境变量路径中添加了 python.exe)。
此外,我发现由于Python 路径问题,CodeDeploy 无法执行.py 文件。因此,我创建了一个 PowerShell 脚本并从那里调用 Python 脚本。如下图:
C:\Users\<username>\AppData\Local\Programs\Python\Python37-32\python.exe C:\Users\<username>\Documents\verify_deployment.py
它成功执行了 Python 脚本并给出了以下输出:
hello
我有一个 CodeDeploy,它在 Windows 个实例上部署应用程序。我有一个 Python 脚本,它是 运行 作为 ValidateService
挂钩的一部分。下面是我在该脚本中的代码:
print("hello")
所以,我删除了所有内容,只打印 hello
作为此脚本的一部分。当 CodeDeploy 调用此脚本时,出现以下错误:
我的 appspec.yml
文件:
...
ValidateService:
- location: scripts/verify_deployment.py
timeout: 900
我尝试在 Google 上寻求帮助,但一无所获。有人可以帮我吗。
谢谢
正如 Marcin 已经在评论中回答的那样,我认为您不能在 CodeDeploy 中简单地 运行 python 脚本。至少不是原生的。
您看到的错误表示Windows不知道如何执行您提供的脚本。 AFAIK Windows 不能 运行 python 本机(就像大多数 linux 发行版一样)。
我不是很习惯CodeDeploy,但鉴于https://github.com/aws-samples/aws-codedeploy-samples/tree/master/applications/SampleApp_Windows的例子,我认为你必须先安装python。
经过大量调查,我找到了答案。这个问题有点误导,与代码格式或 ENOEXEC 无关。问题是由于 Python 路径。在执行我的脚本时,CodeDeploy 无法找到 Python(虽然我已经在环境变量路径中添加了 python.exe)。
此外,我发现由于Python 路径问题,CodeDeploy 无法执行.py 文件。因此,我创建了一个 PowerShell 脚本并从那里调用 Python 脚本。如下图:
C:\Users\<username>\AppData\Local\Programs\Python\Python37-32\python.exe C:\Users\<username>\Documents\verify_deployment.py
它成功执行了 Python 脚本并给出了以下输出:
hello