gpt4 book ai didi

python - ImportError : Could not import settings (Is it on > sys. 路径?设置文件中是否存在导入错误?)在 AWS Elastic Beanstalk 上

转载 作者:太空宇宙 更新时间:2023-11-03 15:14:42 25 4
gpt4 key购买 nike

这似乎是一个常见问题,但到目前为止,所有回复的答案都对我没有用。

Django :1.6.2Python:2.7.5

我正在尝试在 AWS Elastic beanstalk 上部署 Django 应用程序。我当前的 Django 项目结构是-


要求.txt
.ebextensions
|-myproject.config
我的项目
|
|-初始化.py
|-管理.py
|-设置
|-init.py(所有常用设置参数)
|-active.py(选择要选择的生产或开发设置)
|-production.py
|-开发.py
|-应用程序
|-投票
|-初始化.py
|-模型.py
|-views.py
|-urls.py
|wsgi.py

我的wsgi.py文件如下-

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.active")
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.active'

from os.path import abspath, dirname, join
from site import addsitedir

ROOT = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, ROOT)
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, PROJECT_ROOT)
sys.path.insert(0, abspath(join(PROJECT_ROOT, 'apps'))
sys.path.append('/opt/python/ondeck/app/myproject/')
sys.path.append('/opt/python/ondeck/app/myproject/apps')

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

.ebextenstions/myproject.config 设置如下`

container_commands:
01_syncdb:
command: "django-admin.py syncdb --noinput"
leader_only: true
02_collectstatic:
command: "django-admin.py collectstatic --noinput"
option_settings:
- namespace: "aws:elasticbeanstalk:container:python"
option_name: WSGIPath
value: "myproject/wsgi.py"
- option_name: DJANGO_SETTINGS_MODULE
value: "settings.active"
- namespace: "aws:elasticbeanstalk:container:python:staticfiles"
option_name: "/static/"
value: "static/"

我还尝试将 --settings=settings.active 参数传递给 django-admin.py 以得到相同的错误。DJANGO_SETTINGS_MODULE 环境变量设置为 settings.module

这些命令适用于 manage.py

问题是,如果从 .ebextensions/myproject.config 文件,我给 container_command django-admin.py syncdb --noinput ,我收到以下错误-

2014-03-12 08:16:45,988 [ERROR] Command 01_syncdb (django-admin.py syncdb --noinput) failed 2014-03-12 08:16:45,989 [DEBUG] Command 01_syncdb output: Traceback (most recent call last): ImportError: Could not import settings 'settings.active' (Is it on sys.path? Is there an import error in the settings file?): No module named settings.active

当我尝试在我的开发机器上进行本地操作时,我也遇到了同样的错误。但是,如果在我的开发机器上,我将 PYTHONPATH 设置为与我在 wsgi.py 文件中指定的相同的路径,即,

PYTHONPATH=/path/to/myproject 然后命令在本地成功。然而,尽管我在 wsgi.py 文件中设置了相同的路径,但它在 beanstalk 上失败了。

那么有没有办法在不设置 PYTHONPATH 的情况下避免这个错误呢?如果没有,我如何为 AWS Elastic Beanstalk 设置它?

最佳答案

我通过将项目路径添加到 wsgi.py 本身的 sys.path 来修复它。也许你可以试试。

关于python - ImportError : Could not import settings (Is it on > sys. 路径?设置文件中是否存在导入错误?)在 AWS Elastic Beanstalk 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22346017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com