Śledzę samouczek Django https://docs.djangoproject.com/es/1.10/intro/tutorial01/
Stworzyłem fałszywy projekt „mysite” (mój pierwszy) i próbuję go przetestować bez modyfikowania.
django-admin startproject mysite
cd mysite
python manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
Otrzymuję błąd SyntaxError dotyczący pliku, który został wygenerowany przez sam system. I wydaje mi się, że nie mogę znaleźć nikogo, kto przeszedł przez ten sam problem.
Dodam trochę danych o mojej konfiguracji na wypadek, gdyby były przydatne
$ vpython --version
Python 2.7.12
$ pip --version
pip 9.0.1 from /home/frank/.local/lib/python2.7/site-packages (python 2.7)
$ python -m django --version
1.10.6
Czy ktoś mógłby mi pomóc?
Aktualizacja: dodanie zawartości automatycznie generowanego pliku manage.py
cat manage.py
#!/usr/bin/env python3
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
python
syntax-error
Szczery
źródło
źródło
Odpowiedzi:
Upewnij się, z którą wersją Pythona łączysz django (upewnij się, że aktywowałeś wirtualne env, jeśli używasz).
Kiedy instalujesz django używając tylko
wtedy musisz biec
inaczej, jeśli użyłeś:
wtedy musisz biec
Odnosić się:
źródło
python manage.py migrate
zmianą go, abypython3 manage.py migrate
naprawić błąd.Możesz spróbować
python3 manage.py runserver
. Mi to pasuje.źródło
powinieneś aktywować swoje wirtualne środowisko. W terminalu -> źródło env / bin / aktywuj teraz będzie ----> (env) na twoim terminalu!
teraz to zadziała -> runerver.
Nie ma potrzeby usuwania części exc!
źródło
Doświadczyłem tego samego, ale problem został rozwiązany, uruchamiając konkretny Python 3.6, jak poniżej:
źródło
To proste rozwiązanie, na które właśnie wpadłem. Czy aktywowałeś swoje wirtualne środowisko?
mój zrzut ekranu terminala
źródło
Po prostu aktywuj swoje wirtualne środowisko.
źródło
Najlepiej jest utworzyć środowisko wirtualne i uruchomić kod Django w tym środowisku wirtualnym, co pomaga nie zmieniać istniejących środowisk. Oto podstawowe kroki, aby rozpocząć pracę ze środowiskiem wirtualnym i Django.
Utwórz nowy katalog i wejdź do niego.
mkdir test
,cd test
Zainstaluj i utwórz środowisko wirtualne.
python3 -m pip install virtualenv virtualenv venv -p python3
Aktywuj środowisko wirtualne:
source venv/bin/activate
Zainstaluj Django:
pip install django
Rozpocznij nowy projekt:
django-admin startproject myproject
cd do swojego projektu i uruchom projekt:
cd myproject
,python manage.py runserver
Tutaj możesz zobaczyć swój projekt:
http://127.0.0.1:8000/
źródło
django3
activate
.\venv\Script
Po przetestowaniu z precyzyjnymi instrukcjami (używając python2 lub python3 zamiast tylko „python”) stwierdziłem, że bez względu na to, co mówi samouczek, działa to TYLKO z python3.
źródło
Aby uruchomić Python w wersji 3, musisz użyć
python3
zamiastpython
.Tak więc ostatecznym poleceniem będzie:
źródło
Rozwiązanie jest proste. wyjątkiem od manage.py jest to, że podczas uruchamiania polecenia w Pythonie Django nie jest w stanie przewidzieć dokładnej wersji Pythona, powiedzmy, że możesz mieć 3.6, 3.5, 3.8 i być może tylko jedna z tych wersji modułu pip został użyty do zainstalowania Django do rozwiązania to albo użyj:
lub używając dokładnej wersji Pythona (xx):
w przeciwnym razie użycie środowisk wirtualnych może się przydać, ponieważ łatwo łączy każdy moduł pip django z wersją Pythona
źródło
Musisz aktywować środowisko wirtualne, w którym zainstalowałeś django. Następnie uruchom to polecenie - python manage.py runningerver
źródło
Rozwiązałem tę samą sytuację.
WERSJA ZAINSTALOWANA
python 3.6, django 2.1
SYTUACJA
Zainstalowałem Node.js w Windows 10. Po
python manage.py runserver
wywołaniu błędu.BŁĄD
POWÓD
Moja ścieżka do Pythona została zmieniona na python-2.7 z python-3.6. (3.6 jest poprawna na moim komputerze.)
ROZWIĄZANIE
Napraw ścieżkę Pythona.
źródło
Miałem dokładnie ten sam błąd, ale później dowiedziałem się, że zapomniałem aktywować środowiska Conda, które miało zainstalowane django i inne wymagane pakiety.
Rozwiązanie: utwórz condę lub środowisko wirtualne z zainstalowanym django i aktywuj je przed użyciem polecenia:
$ python manage.py migrate
źródło
Django-admin może być złym plikiem, napotkałem ten sam problem, którego nie znalazłem na innym komputerze przy tej samej konfiguracji.
Po porównaniu dwóch projektów znalazłem kilka różnic w manage.py i settings.py, a potem zdałem sobie sprawę, że stworzyłem projekt 2.0 django, ale uruchomiłem go z python2.
uruchomić
which django-admin
w itermWygląda na to, że mam django-admin w pythonie3, ale nie wiedziałem dlaczego, więc próbowałem uzyskać poprawny django-amin.
wtedy dostałem
W
/Library/Python/2.7/site-packages
, znalazłem plik django-adminWięc stworzyłem projekt ponownie przez
następnie uruchomić
udało się🎉
źródło
Musimy stworzyć wirtualne środowisko wewnątrz projektu, a nie poza nim .. Wtedy to się rozwiąże.
źródło
Wygląda na to, że masz na swoim komputerze więcej niż jedną wersję Pythona. Spróbuj usunąć jedną i pozostaw jedyną wersję, której użyłeś do stworzenia swojej aplikacji.
W razie potrzeby możesz zaktualizować swoją wersję, ale upewnij się, że masz tylko jedną wersję Pythona na swoim komputerze.
Mam nadzieję, że to pomoże.
źródło
Wylądowałem na tym samym wyjątku, ponieważ zapomniałem aktywować wirtualne środowisko.
źródło
Oto możliwe przyczyny,
Tworzenie wirtualnego środowiska
Aby aktywować środowisko wirtualne
źródło
Otrzymałem również ten sam błąd.
Następnie wróciłem do folderu, w którym znajduje się folder środowiska i zapomniałem aktywować środowisko wirtualne, więc tylko ja otrzymywałem ten błąd.
Przejdź do tego folderu i aktywuj środowisko wirtualne.
źródło
Samouczek zaleca również korzystanie ze środowiska wirtualnego (zobacz dokumentację Django: https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release "). Możesz to zrobić za pomocą
pipenv --three
. Raz. zainstalowałeś djangopipenv install django
i aktywowałeś swoje środowisko wirtualne za pomocąpipenv shell
, python będzie odwoływał się do python3 podczas wykonywaniapython manage.py runserver
.Dokumentacja Pipenv: https://pipenv.kennethreitz.org/
źródło
Zastanawiam się, że chociaż django jest zainstalowane w kontenerze, może nie znajdować się na maszynie hosta, na którym uruchamiasz polecenie. Wtedy jak będzie działać polecenie. Więc ponieważ żadne z powyższych rozwiązań nie zadziałało dla mnie.
Znalazłem działający kontener i dostałem się do działającego kontenera za pomocą,
docker exec -it <container> bash
a następnie uruchomiłem polecenie wewnątrz kontenera docker. Ponieważ mamy kontener o objętości, wprowadzone zmiany będą również odzwierciedlać lokalnie. Każde polecenie, które ma zostać uruchomione, można uruchomić w uruchomionym kontenerzeźródło
Dla przyszłych czytelników też miałem ten sam problem. Okazuje się, że problem spowodował instalacja Pythona bezpośrednio ze strony internetowej, a także posiadanie innej wersji Anacondy. Musiałem odinstalować Python2.7 i zachować anacondę jako jedyną dystrybucję.
źródło
Czy wszedłeś do wirtualnego środowiska django? Uruchom,
python -m venv myvenv
jeśli jeszcze nie zainstalowałeś.źródło
Po prostu zrób:
pipenv shell
następnie powtórz:
python manage.py runserver
i nie usuwaj,
from exc
jak sugerowano powyżej.Twoje zdrowie!
źródło
Miałem ten sam problem i mogłem go rozwiązać. Jest to związane z wersją Django, którą zainstalowałeś, niektóre z nich nie są obsługiwane przez python 2.7. Jeśli zainstalowałeś Django z pip, oznacza to, że instalujesz najnowszą wersję tego, która prawdopodobnie nie jest obsługiwana w Pythonie 2.7. Więcej informacji na ten temat znajdziesz tutaj . Sugerowałbym pythona 3 lub określenie wersji Django podczas instalacji (czyli 1.11 dla Pythona 2.7).
źródło
Rozwiązałem ten problem, aby odinstalować wiele wersji Pythona. Sprawdź oficjalną dokumentację Django pod kątem zgodności z Pythonem.
„ Zgodność z Pythonem
Django 2.1 obsługuje Python 3.5, 3.6 i 3.7. Django 2.0 to ostatnia wersja obsługująca Python 3.4. "
plik manage.py
Jeśli usunięcie „z exc” z przedostatniej linii tego kodu spowoduje kolejny błąd z powodu wielu wersji Pythona.
źródło
aktywuj env za pomocą następującego polecenia
następnie uruchom polecenie
źródło
Powinieneś uruchomić swoje wirtualne środowisko ,
jak to zrobić?
najpierw z terminalem cd do katalogu zawierającego manage.py
następnie wpisz
$source <myvenv>/bin/activate
zamień na nazwę środowiska wirtualnego, bez nawiasów kątowych.Innym problemem może być niezgodność katalogu głównego i pliku venv. Struktura powinna wyglądać mniej więcej tak:
To jest Twoje środowisko wirtualne, a manage.py powinno znajdować się w tym samym folderze. Rozwiązaniem jest ponowne uruchomienie projektu. Jeśli napotkasz ten błąd, nie musisz jeszcze niczego kodować, więc uruchom ponownie.
źródło
Rozwiązałem również mój problem, gdy aktywowałem moje środowisko wirtualne za pomocą:
źródło
Miałem ten problem (Mac) i postępowałem zgodnie z instrukcjami na poniższej stronie, aby zainstalować i aktywować środowisko wirtualne
https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/
Po zainstalowaniu i aktywowaniu wirtualnego środowiska env sprawdziłem to
Następnie zainstalowałem django w wirtualnym env
A potem mogłem uruchomić moją aplikację
Kiedy dotarłem do kolejnej części tutoriala
Napotkałem inny błąd:
usunąłem
a następnie utworzył katalog polls
źródło