[英]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.