Tôi đang gặp sự cố khi thiết lập DJANGO_SETTINGS_MODULE cho dự án Django của tôi.Làm cách nào tôi có thể đặt đúng DJANGO_SETTINGS_MODULE cho dự án Django của tôi (Tôi đang sử dụng virtualenv)?
Tôi có một thư mục tại ~/dev/django-project
. Trong thư mục này tôi có một môi trường ảo mà tôi đã thiết lập với virtualenv, và cũng là một dự án django được gọi là "hoa" với một ứng dụng bên trong nó được gọi là "onora". Chạy tree -L 3
từ ~/dev/django-project/
chỉ cho tôi như sau:
.
├── Procfile
├── blossom
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── fixtures
│ │ └── initial_data_test.yaml
│ ├── manage.py
│ ├── onora
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── admin.py
│ │ ├── admin.pyc
│ │ ├── models.py
│ │ ├── models.pyc
│ │ ├── tests.py
│ │ └── views.py
│ ├── settings.py
│ ├── settings.pyc
│ ├── sqlite3-database
│ ├── urls.py
│ └── urls.pyc
├── blossom-sqlite3-db2
├── requirements.txt
└── virtual_environment
├── bin
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── activate_this.py
│ ├── django-admin.py
│ ├── easy_install
│ ├── easy_install-2.7
│ ├── gunicorn
│ ├── gunicorn_django
│ ├── gunicorn_paster
│ ├── pip
│ ├── pip-2.7
│ ├── python
│ └── python2.7 -> python
├── include
│ └── python2.7 -> /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
└── lib
└── python2.7
tôi đang cố gắng để đổ dữ liệu của tôi từ cơ sở dữ liệu với lệnh
django-admin.py dumpdata
Tiếp cận của tôi là chạy cd ~/dev/django-project
và sau đó chạy source virtual_environment/bin/activate
và sau đó chạy django-admin.py dumpdata
Tuy nhiên, tôi gặp phải lỗi sau:
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
tôi đã làm một số googling và thấy trang này: https://docs.djangoproject.com/en/dev/topics/settings/#designating-the-settings
đó nói với tôi rằng
When you use Django, you have to tell it which settings you're using. Do this by using an environment variable, DJANGO_SETTINGS_MODULE. The value of DJANGO_SETTINGS_MODULE should be in Python path syntax, e.g. mysite.settings. Note that the settings module should be on the Python import search path.
Sau một gợi ý tại Setting DJANGO_SETTINGS_MODULE under virtualenv? tôi nối các đường
export DJANGO_SETTINGS_MODULE="blossom.settings"
echo $DJANGO_SETTINGS_MODULE
để virtual_environment/bin/kích hoạt. Bây giờ, khi tôi chạy lệnh kích hoạt để kích hoạt các môi trường ảo, tôi nhận được đầu ra đọc:
DJANGO_SETTINGS_MODULE set to blossom.settings
này có vẻ tốt với tôi, nhưng bây giờ vấn đề là tôi có chạy
django-admin.py dumpdata
trả về lỗi sau:
ImportError: Could not import settings 'blossom.settings' (Is it on sys.path?): No module named blossom.settings
Tôi đang làm gì sai? Làm thế nào tôi có thể kiểm tra sys.path
? Công việc này dự định làm như thế nào nhỉ?
Cảm ơn.
Cảm ơn - 'python blossom/manage.py dumpdata' đã hoạt động như mong đợi. – Deonomo
Đúng. Sau đó, tại sao tài liệu django đang nói "Sử dụng chính xác một trong hai cấu hình() hoặc DJANGO_SETTINGS_MODULE. Không phải cả hai, và ** không phải là **." ? https://docs.djangoproject.com/en/dev/topics/settings/ – lajarre
Tư duy hiện tại - như được nêu trong trang web ["DeployDjango"] (http://www.deploydjango.com/django_project_structure/index.html) và gần đây * [Hai Scoops of Django] (http://django.2scoops.org/) * book - là 'django-admin.py' với các thiết lập riêng biệt có chức năng hoàn toàn tốt, và thực sự thích hợp hơn khi sử dụng' quản lý. py'. – supervacuo