从AWS EB Linux实例运行manage.py.

时间:2013-11-15 09:12:14

标签: python django amazon-web-services

如何从AWS EB(Elastic Beanstalk)Linux实例运行manage.py?

如果我从'/ opt / python / current / app'运行它,它会显示以下异常。

Traceback (most recent call last):
  File "./manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

我认为这与virtualenv有关。任何提示?

3 个答案:

答案 0 :(得分:76)

如何从AWS Elastic Beanstalk AMI运行manage.py。

  1. SSH登录Linux
    • (可选可能需要运行sudo su -以获得适当的权限)
  2. 运行source /opt/python/run/venv/bin/activate
  3. 运行source /opt/python/current/env
  4. 运行cd /opt/python/current/app
  5. 运行python manage.py <commands>
  6. 或者,您可以运行命令,如下所示:

    1. 运行cd /opt/python/current/app
    2. 运行/opt/python/run/venv/bin/python manage.py <command>

答案 1 :(得分:1)

TL; DR

此答案假定您已安装EB CLI。请按照下列步骤操作:

  1. 使用ssh连接到正在运行的实例。
eb ssh <environment-name>
  1. 一旦进入环境,请加载环境变量(这对于数据库配置很重要)
. /opt/python/current/env

如果愿意,可以使用printenv查看环境变量。

  1. 激活您的虚拟环境
source /opt/python/run/venv/bin/activate
  1. 导航到项目目录(这取决于您的最新部署,因此请使用最新部署的编号代替XX
cd /opt/python/bundle/XX/app/
  1. 运行所需的命令:
python manage.py <command_name>

运行示例

假设您的环境名称为my-env,最新的部署编号为13,并且您想运行shell命令:

eb ssh my-env # 1
. /opt/python/current/env # 2
source /opt/python/run/venv/bin/activate # 3
cd /opt/python/bundle/13/app/ # 4
python manage.py shell # 5

答案 2 :(得分:1)

使用新版本的Python,路径似乎已更改。

  • 该应用程序位于/ var / app / current
  • 虚拟环境位于/ var / app / venv / [KEY]

所以说明是:

  1. 使用eb shh
  2. SSH到计算机
  3. 使用ls /var/app/venv/检查环境的路径。唯一的文件夹应该是下一步的[KEY]
  4. 使用源/var/app/venv/[KEY]/bin/activate激活环境
  5. 执行命令python3 /var/app/current/manage.py <command>

当然,亚马逊可以随时更改它。