我已经使用django在虚拟环境中构建了一个站点,并按照AWS文档中的步骤进行了部署。我已使用Elastic Beanstalk将站点部署到AWS Web服务器,并设置了运行3.6和django 2.1.1的python环境。我提取了日志,并收到以下错误:
Traceback (most recent call last):
File "/opt/python/current/app/weddingProject/wsgi.py", line 12, in <module>
from django.core.wsgi import get_wsgi_application
ModuleNotFoundError: No module named 'django'
Target WSGI script '/opt/python/current/app/weddingProject/wsgi.py' cannot be loaded as Python module.
我读过其他文章,他们说尚未安装django,但是,requirements.txt文件确实将其列为要安装的软件包。因此,我不确定是什么引起了该问题,并且我不知道如何检查服务器以确保已安装。
当我运行pip Frozen> requirements.txt时,确实看到django被列为要安装的软件包。我运行eb deploy,由于某种原因未安装django。
答案 0 :(得分:0)
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html
eb create django-env
您是否创建了虚拟环境?如果是,您将获得该命令的输出
eb status
。
还是可以列出使用Elastic Beanstalk部署Django应用程序遵循的步骤?
阅读此文档:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-container.html以使用AWS Elastic Beanstalk Python平台。
答案 1 :(得分:0)
发现了问题。 require.txt文件放置在错误的目录中,导致Django无法安装。
答案 2 :(得分:0)
我遇到了完全相同的问题。对于我来说,我需要将.elasticbeanstalk
和config.yml
放在mysite/
中。然后它起作用了。 WSGIPath
应该是mysite/wsgi.py
,而不是mysite/mysite/wsgi.py
。
答案 3 :(得分:0)
不知道为什么,但是elasticbeanstalk没有安装要求。对我来说也是如此,所以我必须手动进行。在适当的环境中安装需求的适当方法是:
- 登录ebs使用的ec2实例内部。
- 转到/ var / app / venv / staging-LQM1lest / bin <-可以根据配置进行更改(请使用ebs控制台进行检查)。
- sudo ./pip install -r /var/app/current/requirements.txt
这应该有效。
答案 4 :(得分:0)
我遇到了同样的问题。文件 requirements.txt 比它应该的更深一层。将 requirements.txt
放在与 .elasticbeanstalk/
示例:
├── .ebextensions
│ ├── 01_packages.config
│ └── 02_python.config
├── .elasticbeanstalk
│ └── config.yml
├── testproject
│ ├── db.sqlite3
│ ├── cust_app
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── models.py
│ │ ├── tests.py
│ │ ├── urls.py
│ │ └── views.py
│ ├── manage.py
│ └── testproject
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── requirements.txt