繁体   English   中英

将 Django 部署到 Elastic Beanstalk,/opt/python 不存在

[英]Deploying Django to Elastic Beanstalk, /opt/python does not exist

在部署我的 django 应用程序时,我完全迷失了过去 4-5 天一直在尝试解决相同的问题。

问题如下。

我的迁移命令失败,迁移配置文件如下

container_commands:

01_migrate:

command: "python3 manage.py migrate"

leader_only: true



option_settings:

aws:elasticbeanstalk:application:environment:

DJANGO_SETTINGS_MODULE: djangomicroblog.settings

我还尝试将命令更改为许多不同的内容,包括:

command: "python manage.py migrate"

command: "django-admin.py migrate"

command: "/opt/python/run/venv/bin/python3 manage.py migrate"

不同的命令给了我不同的错误,python manage.py migrate 报告:

2020-06-21 13:15:48,639 P8373 [INFO] File "manage.py", line 16

2020-06-21 13:15:48,639 P8373 [INFO] ) from exc

2020-06-21 13:15:48,639 P8373 [INFO] ^

2020-06-21 13:15:48,640 P8373 [INFO] SyntaxError: invalid syntax

我认为这是因为它试图用 python2 执行

Python3 manage.py 迁移报告:

2020-06-21 13:12:37,445 P8066 [INFO] Traceback (most recent call last):

2020-06-21 13:12:37,445 P8066 [INFO] File "manage.py", line 10, in main

2020-06-21 13:12:37,445 P8066 [INFO] from django.core.management import execute_from_command_line

2020-06-21 13:12:37,445 P8066 [INFO] ModuleNotFoundError: No module named 'django'

2020-06-21 13:12:37,445 P8066 [INFO]

2020-06-21 13:12:37,445 P8066 [INFO] The above exception was the direct cause of the following exception:

2020-06-21 13:12:37,445 P8066 [INFO]

2020-06-21 13:12:37,445 P8066 [INFO] Traceback (most recent call last):

2020-06-21 13:12:37,445 P8066 [INFO] File "manage.py", line 21, in <module>

2020-06-21 13:12:37,445 P8066 [INFO] main()

2020-06-21 13:12:37,445 P8066 [INFO] File "manage.py", line 16, in main

2020-06-21 13:12:37,445 P8066 [INFO] ) from exc

2020-06-21 13:12:37,446 P8066 [INFO] ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

所以我一直试图找到互联网所说的虚拟环境应该在 /opt/python/ (我通过 ssh 和 sudo su 访问),但这个目录不存在

我的目录结构如下:

本地设备上的目录结构

我现在唯一的想法是我的应用程序是用 python 3.8 编写的,因此 requirements.txt 来自 3.8 导致不兼容? 但如果是这种情况,我不知道如何解决这个问题。

它不起作用的原因很可能是因为您使用的是Amazon Linux 2的 EB 环境,而您的应用程序是为Amazon Linux 1开发的。

因此它在错误的位置寻找 python 。 要解决此问题,请确保为Amazon Linux 1而不是Amazon Linux 2创建 python 环境。

AL1 和 AL2 之间存在许多差异,这使得它们不兼容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM