Я следую учебнику Django https://docs.djangoproject.com/es/1.10/intro/tutorial01/
Я создал фиктивный проект mysite (мой самый первый) и пытаюсь протестировать его, не изменяя его.
django-admin startproject mysite
cd mysite
python manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
Я получаю SyntaxError для файла, созданного самой системой. И я, кажется, не могу найти никого, кто прошел бы через ту же проблему.
Я добавлю некоторые данные о своей настройке на случай, если они пригодятся
$ 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
Кто-нибудь может мне помочь?
Обновление: добавление содержимого автоматически сгенерированного 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
Фрэнк
источник
источник
Ответы:
Убедитесь, с какой версией python вы подключаете django (не забудьте активировать виртуальный env, если вы его используете).
Когда вы устанавливаете django, используя только
тогда тебе нужно бежать
иначе, если вы использовали:
тогда тебе нужно бежать
Обратитесь:
источник
python manage.py migrate
изменением, чтобыpython3 manage.py migrate
исправить ошибку.Вы можете попробовать
python3 manage.py runserver
. Меня устраивает.источник
вы должны активировать свою виртуальную среду. В терминале -> исходный env / bin / activate теперь будет отображаться ----> (env) в вашем терминале!
теперь будет работать -> runserver.
Не нужно удалять исключительную часть!
источник
Это простое решение, с которым я только что столкнулся. Вы активировали свою виртуальную среду?
мой скриншот терминала
источник
У меня было то же самое, но это было решено запуском с конкретным python 3.6, как показано ниже:
источник
Просто активируйте свою виртуальную среду.
источник
Лучше всего создать виртуальную среду и запускать код Django внутри этой виртуальной среды, это помогает не изменять существующие среды. Вот основные шаги для начала работы с виртуальной средой и Django.
Создайте новый каталог и перейдите в него.
mkdir test
,cd test
Установите и создайте виртуальную среду.
python3 -m pip install virtualenv virtualenv venv -p python3
Активировать виртуальную среду:
source venv/bin/activate
Установите Django:
pip install django
Начать новый проект:
django-admin startproject myproject
cd в свой проект и запустите проект:
cd myproject
,python manage.py runserver
Вы можете увидеть свой проект здесь:
http://127.0.0.1:8000/
источник
django3
activate
.\venv\Script
После тестирования с точными инструкциями (с использованием python2 или python3 вместо просто «python») я констатировал, что независимо от того, что говорится в руководстве, это работает ТОЛЬКО с python3.
источник
Решение простое. исключение из manage.py связано с тем, что при запуске команды с python Django не может предсказать точную версию python, скажем, у вас может быть 3.6, 3.5, 3.8 и, возможно, только один из этих версий pip-модуля использовался для установки Django для решения это либо используйте:
или используя точную версию Python (xx):
иначе использование виртуальных сред может пригодиться, потому что оно легко связывает любой модуль pip django с версией python
источник
Для запуска Python версии 3 вам необходимо использовать
python3
вместоpython
.Итак, последняя команда будет такой:
источник
Вы должны активировать виртуальную среду, в которой вы установили django. Затем запустите эту команду - питона manage.py runserver
источник
Я решил ту же ситуацию.
УСТАНОВЛЕННАЯ ВЕРСИЯ
Python 3.6, Джанго 2.1
СИТУАЦИЯ
Я установил Node.js в Windows 10. После
python manage.py runserver
вызвала ошибку.ОШИБКА
ПРИЧИНА
Мой путь к python изменился на python-2.7 с python-3.6. (На моем компьютере 3.6 правильно.)
РЕШЕНИЕ
Исправить путь к python.
источник
Возможными причинами могут быть следующие:
Для создания виртуальной среды
Для активации виртуальной среды
источник
У меня была точно такая же ошибка, но позже я обнаружил, что забыл активировать среду conda, в которой были установлены django и другие необходимые пакеты.
Решение: создайте conda или виртуальную среду с установленным django и активируйте ее перед использованием команды:
$ python manage.py migrate
источник
Возможно, django-admin - неправильный файл. Я столкнулся с той же проблемой, которую не нашел на другом компьютере в той же последовательности настройки.
После сравнения двух проектов я обнаружил несколько различий в manage.py и settings.py, затем понял, что создал проект django 2.0, но запустил его с помощью python2.
беги
which django-admin
в итермПохоже, у меня есть django-admin на python3, я не знал почему, поэтому я попытался получить правильный django-amin.
тогда я получил
В
/Library/Python/2.7/site-packages
, я нашел django-adminИтак, я снова создал проект
затем беги
удалось🎉
источник
Мы должны создать виртуальную среду внутри проекта, а не вне проекта .. Тогда это решит ..
источник
Похоже, на вашем компьютере установлено несколько версий Python. Попробуйте удалить одну и оставьте единственную версию, которую вы использовали для разработки своего приложения.
При необходимости вы можете обновить свою версию, но убедитесь, что на вашем компьютере установлена только одна версия Python.
Надеюсь, это поможет.
источник
Я столкнулся с тем же исключением, потому что забыл активировать виртуальную среду.
источник
Я тоже получал ту же ошибку.
Затем я вернулся в папку, в которой находится папка среды, и забыл активировать виртуальную среду, поэтому только я получал эту ошибку.
Перейдите в эту папку и активируйте виртуальную среду.
источник
Кроме того, в руководстве рекомендуется использовать виртуальную среду (см. Документацию Django: https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release "). Вы можете сделать это с помощью
pipenv --three
. Once вы установили djangopipenv install django
и активировали свою виртуальную среду с помощьюpipenv shell
, python будет ссылаться на python3 при выполненииpython manage.py runserver
.Документация Pipenv: https://pipenv.kennethreitz.org/
источник
Что мне интересно, хотя django установлен в контейнер, он может не находиться на хост-машине, на которой вы запускаете команду. Тогда как будет работать команда. Итак, поскольку для меня не сработали никакие вышеуказанные решения.
Я обнаружил запущенный контейнер и попал в работающий контейнер, используя
docker exec -it <container> bash
затем команду внутри контейнера докера. Поскольку у нас есть объемный контейнер, сделанные изменения также будут отражаться локально. Какую бы команду ни запускали, можно запустить внутри работающего контейнера.источник
Для будущих читателей у меня тоже была такая же проблема. Оказалось, что установка Python непосредственно с веб-сайта, а также наличие другой версии от Anaconda вызвали эту проблему. Мне пришлось удалить Python2.7 и оставить только анаконду в качестве единственного дистрибутива.
источник
Вы вошли в виртуальную среду для django? Запускайте,
python -m venv myvenv
если еще не установили.источник
Просто сделать:
pipenv shell
затем повторить:
python manage.py runserver
и не удаляйте,
from exc
как предложено выше.ура!
источник
У меня была такая же проблема, и я мог ее решить. Это связано с установленной вами версией Django, некоторые из них не поддерживаются python 2.7. Если вы установили Django с помощью pip, это означает, что вы устанавливаете последнюю версию того, что, вероятно, не поддерживается в python 2.7. Вы можете получить больше информации об этом здесь . Я бы предложил использовать python 3 или указать версию Django при установке (для python 2.7 это 1.11).
источник
Я решил эту проблему, удалив несколько версий Python. Проверьте совместимость с Python в официальной документации Django .
" Совместимость с Python
Django 2.1 поддерживает Python 3.5, 3.6 и 3.7. Django 2.0 - последняя версия, поддерживающая Python 3.4 ".
файл manage.py
Если удаление «from exc» из второй последней строки этого кода вызовет другую ошибку из-за нескольких версий Python.
источник
активируйте env следующей командой
затем запустите команду
источник
Вы должны запустить свою виртуальную среду ,
как это сделать?
сначала с помощью cd терминала в каталог, содержащий manage.py
затем введите
$source <myvenv>/bin/activate
заменить свое имя виртуальной среды без угловых скобок.Другая проблема может быть в том, что ваш корневой каталог и venv не совпадают. Структура должна быть примерно такой:
То есть ваша виртуальная среда и manage.py должны находиться в одной папке. Решение - перезапустить проект. Если вы столкнулись с этой ошибкой, вы, должно быть, еще ничего не закодировали, поэтому перезапустите.
источник
Решил и мою проблему, когда я активировал свою виртуальную среду, используя:
источник
У меня была эта проблема (Mac), и я следовал инструкциям на следующей странице, чтобы установить и активировать виртуальную среду.
https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/
После того, как я установил и активировал виртуальный env, я проверил его.
Затем я установил django в виртуальную среду
И тогда я мог запустить свое приложение
Когда я дошел до следующей части урока
Я обнаружил еще одну ошибку:
Я удалил
и затем он создал каталог опросов
источник