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

将Django部署到Elastic Beanstalk,/opt/python不存在,python,django,amazon-web-services,amazon-ec2,amazon-elastic-beanstalk,Python,Django,Amazon Web Services,Amazon Ec2,Amazon Elastic Beanstalk,我完全迷路了&在过去的4-5天里,我一直在尝试在部署我的django应用程序时修复相同的问题 问题如下 我的迁移命令失败,迁移配置文件如下 container_commands: 01_migrate: command: "python3 manage.py migrate" leader_only: true option_settings: aws:elasticbeanstalk:application:environment: DJANGO_SETTI

我完全迷路了&在过去的4-5天里,我一直在尝试在部署我的django应用程序时修复相同的问题

问题如下

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

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迁移报告:

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
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?
我想这是因为它试图用python2执行

Python3 manage.py迁移报告:

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
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?
2020-06-21 13:12:37445 P8066[INFO]回溯(最近一次呼叫最后一次):
2020-06-21 13:12:37445 P8066[信息]文件“manage.py”,第10行,主视图
2020-06-21 13:12:37445 P8066[信息]来自django.core.management从命令行导入执行
2020-06-21 13:12:37445 P8066[信息]模块无边界错误:没有名为“django”的模块
2020-06-21 13:12:37445P8066[信息]
2020-06-21 13:12:37445 P8066[信息]上述异常是以下异常的直接原因:
2020-06-21 13:12:37445P8066[信息]
2020-06-21 13:12:37445 P8066[信息]回溯(最近一次呼叫最后一次):
2020-06-21 13:12:37445 P8066[信息]文件“manage.py”,第21行,在
2020-06-21 13:12:37445P8066[INFO]main()
2020-06-21 13:12:37445 P8066[信息]文件“manage.py”,第16行,主视图
2020-06-21 13:12:37445第8066页[信息])来自exc
2020-06-21 13:12:37446 P8066[信息]导入错误:无法导入Django。您确定PYTHONPATH环境变量已安装并可用吗?您是否忘记激活虚拟环境?
所以我一直在试图找到虚拟环境,互联网上说它应该在/opt/python/(我通过ssh和sudosu访问它),但是这个目录根本不存在

我的目录结构如下:


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

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

因此,它在错误的位置寻找python。要解决此问题,请确保您正在为
amazonlinux1
而不是
amazonlinux2
创建python环境


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

非常感谢!原来我的应用程序混合了AL1和AL2设置,但env是在AL2上运行的。将应用程序中的一些配置恢复为AL1设置,我现在使用的是带有Python3.6的AL2环境&它已经启动并运行了!我看过的教程/参考资料中没有一篇提到我必须使用AL1(我想是因为它是新的?),所以我假设在创建env时我只想使用最新的python版本(碰巧是3.7 AL2)。@BillieM没问题。如果我的回答有帮助的话,我们将不胜感激day@BillieMAL2是非常新的,因此大多数教程和指南都是关于AL1的。