2012-12-08 8 views
7

Niedawno zainstalowałem Django-1.5b1. Moja konfiguracja systemu:Django 1.5b1: wykonywanie django-admin.py powoduje błąd "Brak ustawień modułu o nazwie"

  • OSX 10.8
  • Python 2.7.1
  • virtualenv 1.7.2

Kiedy zadzwonić django-admin.py komenda pojawia się następujący błąd

(devel)ninja Django-1.5b1: django-admin.py 
Usage: django-admin.py subcommand [options] [args] 

Options: 
    -v VERBOSITY, --verbosity=VERBOSITY 
         Verbosity level; 0=minimal output, 1=normal output, 
         2=verbose output, 3=very verbose output 
    --settings=SETTINGS The Python path to a settings module, e.g. 
         "myproject.settings.main". If this isn't provided, the 
         DJANGO_SETTINGS_MODULE environment variable will be 
         used. 
    --pythonpath=PYTHONPATH 
         A directory to add to the Python path, e.g. 
         "/home/djangoprojects/myproject". 
    --traceback   Print traceback on exception 
    --version    show program's version number and exit 
    -h, --help   show this help message and exit 
Traceback (most recent call last): 
    File "/Users/sultan/.virtualenvs/devel/bin/django-admin.py", line 5, in <module> 
    management.execute_from_command_line() 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 452, in execute_from_command_line 
    utility.execute() 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 375, in execute 
    sys.stdout.write(self.main_help_text() + '\n') 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 241, in main_help_text 
    for name, app in six.iteritems(get_commands()): 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 108, in get_commands 
    apps = settings.INSTALLED_APPS 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 52, in __getattr__ 
    self._setup(name) 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 47, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 132, in __init__ 
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e)) 
ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings 

Czy ktoś miał te same błędy? Czy ktoś może mu doradzić lub pomóc?

Dzięki,

Sultan

+0

Próbowałem zainstalować Django Django 1.4.2 i 1.3.4 i wszystko działa dobrze – sultan

Odpowiedz

23

Miałem ten sam problem podczas rozpoczynania nowego projektu. I rozwiązać problem poprzez nadanie tego polecenia w wierszu polecenia:

export DJANGO_SETTINGS_MODULE= 

w ten sposób ja rozbrojony zmienną, która wskazywała na „settings” pliku (odkryta za pomocą env | grep DJANGO_SETTINGS_MODULE) ustawić przed rozpoczęciem korzystania virtualenv

po usunięciu zmiennej skrypt django-admin.py działał jak czar!

+0

to działało dla mnie też – sultan

+0

To nie jest najlepsze rozwiązanie, powinieneś włączyć PYTHONPATH, tak jak zasugerował @ceolwulf: http: // stackoverflow.com/a/14995603/778261 – neosergio

+0

Dzięki @neosergio. Czy możesz wyjaśnić, dlaczego to powinno być najlepsze rozwiązanie? Sultan miał błędną wartość w DJANGO_SETTINGS_MODULE, a moja sugestia polegała na usunięciu tej wartości w celu użycia virtualenv. – furins

-1

Czy jesteś pewien, że zaczynają się django-admin z virtualenv django INSTALACJA? Być może ścieżka/do/virtualenv/bin/django-admin.py

+0

Tak, jestem, polecenie ** które django-admin.py ** pokazuje **/Users/sultan/.virtualenvs/devel/bin/django-admin.py ** – sultan

+1

yes sorry, just saw że. innym powodem jest to, że django nie znajduje się na ścieżce Pythona. Nie wiem, python czarownica uruchamia główny system lub wirtualny python. Ale coś jest nie tak ze ścieżkami ... – krasi

0

Może twój problem jest związany z tym: Wrong python path in script header

Jeśli chcesz robić nic oprócz tworzenia nowego projektu Django wewnątrz venv, należy zadzwoń pod numer python manage.py (oczywiście, whereis python powinien zwrócić twój plik wykonywalny venv)

0

Nie uruchamiaj skryptu od bezpośredniej ścieżki do biblioteki django; uruchom go z dowolnej innej ścieżki. Wygląda na to, że jesteś cd w katalogu, w którym django jest zainstalowane (lub gdzie go pobrałeś i rozwinął), a następnie uruchomiłeś tam polecenie.

Więc spróbuj tego:

(devel)ninja Django-1.5b1: cd 
(devel)ninja: django-admin.py startproject foo 
+0

To samo się dzieje, to nie działa – sultan

5

miałem ten sam problem jak ty, a ja nie mają pochodzić z dobrym poprawki oprócz poprzedzenie mój folder projektu do PYTHONPATH tak:

export PYTHONPATH="/absolute/path/to/django/project/folder:$PYTHONPATH" 

gdzie mój <project> znajduje się pod adresem /absolute/path/to/django/project/folder/<project>. Dodaję tę komendę export do końca mojego skryptu env/bin/activate, więc dzieje się to za każdym razem, gdy zainicjuję virtualenv.

Jedyna różnica między naszymi dwoma sytuacjami polega na tym, że używam wielu plików ustawień zamiast pojedynczego modułu settings.py.

Można również zadzwonić django-admin.py z folderu zawierającego projekt Django tak:

python ~/.virtualenvs/devel/bin/django-admin.py <command> 

tak, że rozpoznaje aktualny katalog roboczy jako część ścieżki.

Mam nadzieję, że ma to sens. To trochę niezdarne, aby wyjaśnić, co sprawia, że ​​trudno znaleźć odpowiedź.

-1

do łatwego rozwiązania można spróbować

pytona. \ Scripts \ django-admin.py startproject Nazwa_projektu

potem uruchomić