You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Packer创建的AMI启动EC2实例后pip安装的包全部丢失

问题:Packer创建的AMI在EC2实例中丢失pip安装的Python包

我是AWS新用户,使用Packer安装Python包后成功创建了AMI,该AMI中的所有包均可正常使用,以下是Packer输出的Django包信息:

e2esa-packer.amazon-ebs.my-ami: Name: Django
e2esa-packer.amazon-ebs.my-ami: Version: 3.2.18
e2esa-packer.amazon-ebs.my-ami: Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
e2esa-packer.amazon-ebs.my-ami: Home-page: https://www.djangoproject.com/
e2esa-packer.amazon-ebs.my-ami: Author: Django Software Foundation
e2esa-packer.amazon-ebs.my-ami: Author-email: foundation@djangoproject.com
e2esa-packer.amazon-ebs.my-ami: License: BSD-3-Clause
e2esa-packer.amazon-ebs.my-ami: Location: /home/ec2-user/.local/lib/python3.7/site-packages
e2esa-packer.amazon-ebs.my-ami: Requires: sqlparse, pytz, asgiref
e2esa-packer.amazon-ebs.my-ami: Required-by: djangorestframework

但使用该AMI创建EC2实例后,所有通过pip安装的包均丢失,而yum安装的包仍可正常使用。执行pip3 list后未发现任何pip安装的包,尽管这些包确实已安装在源AMI中。

我尝试在my_env.sh文件中添加PATH变量,按照AWS教程操作后PATH已添加,但pip包仍未恢复。在源AMI中可正常获取Django路径及信息,但在从AMI创建的实例中提示找不到模块。

我期望实例的表现与源AMI完全一致,以下是我使用Terraform创建实例的代码:

resource "aws_instance" "web_instance" {
  ami           = "ami-037212529c144dd64"
  instance_type = "t2.micro"
  key_name      = "newKey"

  subnet_id                   = aws_subnet.public_subnets[0].id
  vpc_security_group_ids      = [aws_security_group.application.id]
  associate_public_ip_address = true
  disable_api_termination = true

  root_block_device {
    volume_size = 50
    volume_type = "gp2"
    delete_on_termination = true
  }
}

内容的提问来源于stack exchange,提问作者yhx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 15:43:14