[英]"ImportError: No module named" when trying to run Python script
[英]'ImportError: No module named sqlalchemy' error when trying to run ec2 python script from ssm
我正在嘗試使用來自 Lambda 的 ssm runShellScript 在我的 ec2 實例上運行 python 腳本。 使用創建文本文件的簡單腳本進行測試時,它運行沒有問題。 我可以在 ec2 上看到文本文件。 但是當嘗試運行預期的 python 腳本 (analyzer.py) 時,我收到以下錯誤:'ImportError: No module named sqlalchemy'
腳本analyzer.py 使用了sqlalchemy 模塊。 當我直接從 ec2 服務器運行analyzer.py 時,腳本運行得很好。 想法?
原因是當使用 ssm runShellScript 向 ec2 實例發送命令時,您以“root”身份運行,我認為它沒有安裝 sqlalchemy 庫。 您需要以“ec2-user”(或安裝了 sqlalchemy 的任何用戶帳戶)身份運行。
我使用以下方法使其工作:
cd <folder that contains analyzer.py>
python analyzer.py
import boto3
ssm_client = boto3.client('ssm')
ssm_client.send_command(
InstanceIds=["<put your instance id here>"],
DocumentName="AWS-RunShellScript",
Parameters={'commands': [
"sudo -i -u ec2-user /home/ec2-user/run_analyzer.sh"
]} )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.