2013-11-28 3 views
10

Существует, по-видимому, ряд потенциальных решений этой проблемы, но ничего не работает для меня.Последовательное получение ImportError: не удалось импортировать настройки «myapp.settings»

Запуск python manage.py runserver в порядке, но я получаю сообщение об ошибке при попытке запустить django-admin.py - с любым вариантом. Я на самом деле пытаюсь сделать django-admin.py dumpdata myapp.

Traceback (most recent call last): 
File "/Users/lemon/.virtualenvs/ram/bin/django-admin.py", line 5, in <module> 
management.execute_from_command_line() 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line 
utility.execute() 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
commands = get_commands() 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/__init__.py", line 107, in get_commands 
apps = settings.INSTALLED_APPS 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/conf/__init__.py", line 54, in __getattr__ 
self._setup(name) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/conf/__init__.py", line 49, in _setup 
self._wrapped = Settings(settings_module) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/conf/__init__.py", line 132, in __init__ 
% (self.SETTINGS_MODULE, e) 
ImportError: Could not import settings 'ram.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named ram.settings 

Структура моего каталога проекта является:

README.md 
├── TODO 
├── fabfile.py 
├── manage.py 
├── ram 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── ram.sqlite 
│   ├── ram.sqlite.orig 
│   ├── settings.py 
│   ├── settings.py.orig 
│   ├── settings.pyc 
│   ├── templates 
│   ├── urls.py 
│   ├── urls.pyc 
│   ├── wsgi.py 
│   └── wsgi.pyc 
├── ramapp 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── admin.py 
│   ├── admin.pyc 
│   ├── forms.py 
│   ├── forms.pyc 
│   ├── models.py 
│   ├── models.pyc 
│   ├── templates 
│   │   └── ram 
│   │    ├── contributors.html 
│   │    ├── index.html 
│   │    ├── ram_sheet.html 
│   │    └── scenario_add.html 
│   ├── tests.py 
│   ├── urls.py 
│   ├── urls.pyc 
│   ├── views.py 
│   ├── views.py.orig 
│   └── views.pyc 
├── requirements.txt 
└── templates 
    └── admin 
     └── base_site.html 

Я использую virtualenvrapper, которые я переустановил и не имеем проблем с.

manage.py выглядит следующим образом:

#!/usr/bin/env python 
import os 
import sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ram.settings") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 

Не совсем уверен, куда еще пойти с этим - любая помощь в широком масштабе оценили. Благодарю.

Попробовав о внесении поправок в PYTHONPATH как было предложено, теперь получить подобную ошибку:

Traceback (most recent call last): 
File "/Users/lemon/.virtualenvs/ram/bin/django-admin.py", line 5, in <module> 
management.execute_from_command_line() 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line 
utility.execute() 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command 
klass = load_command_class(app_name, subcommand) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/__init__.py", line 75, in load_command_class 
module = import_module('%s.management.commands.%s' % (app_name, name)) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module 
__import__(name) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/management/commands/dumpdata.py", line 3, in <module> 
from django.core import serializers 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/serializers/__init__.py", line 22, in <module> 
from django.core.serializers.base import SerializerDoesNotExist 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/core/serializers/base.py", line 5, in <module> 
from django.db import models 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/db/__init__.py", line 83, in <module> 
signals.request_started.connect(reset_queries) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 88, in connect 
if settings.DEBUG: 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/conf/__init__.py", line 54, in __getattr__ 
self._setup(name) 
File "/Users/lemon/.virtualenvs/ram/lib/python2.7/site-packages/django/conf/__init__.py", line 47, in _setup 
% (desc, ENVIRONMENT_VARIABLE)) 
django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

ответ

9

Try:

export PYTHONPATH=/path/to/folder/with/manage.py:$PYTHONPATH 

Похоже, это проблема путь. путь, из которого вы вызываете manage.py, обычно добавляется к PYTHONPATH, если вы вызываете django-admin.py, это не так. Ваше приложение поэтому не находит модуль ram. Вам нужно добавить папку, где ваш manage.py находится в PYTHONPATH

РЕДАКТИРОВАНИЕ

django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

означает, что вы должны сказать Джанго какие настройки. Так введите следующую строку

export DJANGO_SETTINGS_MODULE='ram.settings' 

или начать Джанго-администрировать следующим образом

django-admin.py runserver --settings='ram.settings' 

(с измененным PYTHONPATH, конечно)

+0

Спасибо, но не повезло. Редактировал исходное сообщение, чтобы отразить новое сообщение об ошибке. – haircode

+0

У вас возникла еще одна проблема: для django admin нет файла настроек. Я отредактировал мое сообщение соответственно – ProfHase85

+0

Bingo! Огромная благодарность вам, сэр. – haircode

Смежные вопросы