Django - «нет модуля с именем django.core.management»


104

Я получаю следующую ошибку при попытке запустить Django из командной строки.

File manage.py, line 8, in <module>
     from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

Есть идеи, как это решить?


Что именно вы пытаетесь запустить, какую версию Python, версию Django и т. Д.?
Джон Клементс

Версия моего локального хоста - Python 2.6.6 и 1.4.3 Dyango. Сервер Python 2.6.6, а для Dyango не могу проверить, знаете ли, как проверить?
Красимир

Я получил эту ошибку случайно при попытке выполнить миграцию, и я был в своей виртуальной среде с установленным Django. Я просто снова запустил команду, и она сработала.
aalaap

У меня такая же ошибка. У меня установлен django, но он установлен в каталоге dist-packages. Dockerfile использует базовый образ ubuntu. Поэтому я обновил Dockerfile, чтобы добавить это, ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"но приложение django все еще не загружается.
alltej 04

Ответы:


55

Похоже, у вас не установлен django. Вы должны проверить каталог, созданный этой командой:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Чтобы узнать, есть ли у вас там пакеты django.

Если внутри пакетов сайта нет папки django, значит, у вас не установлен django (по крайней мере, для этой версии python).

Возможно, у вас установлено несколько версий python, а django находится внутри другой версии. Вы можете узнать все версии python, если наберете и нажмете pythonTAB. Вот все разные питоны, которые у меня есть.

$python
python            python2-config    python2.6         python2.7-config  pythonw2.5
python-config     python2.5         python2.6-config  pythonw           pythonw2.6
python2           python2.5-config  python2.7         pythonw2          pythonw2.7

Вы можете выполнить указанную выше команду для каждой версии python и заглянуть в каталог site-packages каждой, чтобы узнать, установлен ли на каком-либо из них django. Например:

python2.5 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
python2.6 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Если вам посчастливилось найти django внутри, скажем, python2.6, попробуйте исходную команду с

python2.6 manage.py ...

Это то, что следует сразу после команды "/usr/lib/python2.6/site-packages"
Красимир

Зайдите в папку «/usr/lib/python2.6/site-packages» и посмотрите, есть ли внутри папка с именем django.
RaviU

Evrything else not Django: D
Красимир

Привет, пожалуйста, проверьте мой отредактированный ответ. Возможно, ваш django находится в другой версии python.
RaviU

1
Если вы установили django с помощью virtualenv или в виртуальной среде, вы должны находиться в виртуальной среде для его запуска, если вы не установили его в системе глобально.
Рамон Суарес

41
sudo pip install django --upgrade 

сделал трюк для меня.


4
Ваш ответ сработал для меня, поэтому я проголосовал за него. Тем не менее, только в одиночку ваш ответ не было достаточно, потому что , когда я побежал sudo pip install django --upgradeон дал мне новую ошибку: No module named psycopg2. Итак, я убежал sudo pip install psycopg2 --upgrade, и это помогло.
Дориан Доре

2
Оказалось, что у меня не установлен django ... Хотя я использовал его раньше на машине. Странно.
James111

У меня была проблема с тайм-аутом, поэтому я решил, sudo pip install --default-timeout=100 django --upgradeи все прошло гладко.
Zap

Если вы используете pyenv, вам понадобится следующее:pip install django --upgrade --user
Inyoka

30

У меня такая же ошибка, и я исправил ее следующим образом:

Мне пришлось активировать свою виртуальную среду, используя следующую команду

source python2.7/bin/activate

22

Скорее всего, ваша manage.pyпервая строка начинается с того, !/usr/bin/pythonчто означает, что вы используете глобальный системный питон, а не тот, который находится в вашей виртуальной среде.

так замените

/usr/bin/python

с участием

~/projectpath/venv/bin/python

и тебе должно быть хорошо.


Спасибо. Это помогло.
Serg Smyk

В моем проекте был сценарий bash, который вызывал одну часть приложения, и в этом сценарии bash python startappмне пришлось изменить его на, /path/to/venv/bin/python startappи он сработал. Спасибо, что указали на это !!
Гордстер,

13

Что ж, сегодня я столкнулся с той же ошибкой после установки virtualenv и django. Для меня это было то, что я использовал sudo ( sudo pip install django ) для установки django, и я пытался запустить runserver manage.py без sudo . Я просто добавил sudo, и это сработало. :)


10

Вы используете виртуальную среду с Virtual Wrapper? Вы на Mac?

Если да, попробуйте это:

Введите в командную строку следующее, чтобы запустить виртуальную среду, а затем работать с ней.

1.)

source virtualenvwrapper.sh

или

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Примечание (от новичка) - не заключайте в скобки имя вашей среды


Мне потребовалось около двух секунд, чтобы выяснить, что virtualenv не включен, но это была моя проблема ... так что проголосуйте, так как я нажал кнопку google один раз и не прочитал ничего, что появилось.
RobotHumans

7

У меня такая же проблема при запуске команды -

python manage.py startapp <имя_приложения>

Но проблема со мной в том, что я запускал эту команду из виртуальной среды, поэтому сначала активируйте свою виртуальную среду и снова запустите команду -


1
В моем проекте был сценарий bash, который вызывал одну часть приложения, и в этом сценарии bash python startappмне пришлось изменить его на, /path/to/venv/bin/python startappи он сработал.
Гордстер,

5

Эта проблема возникает, если на вашем компьютере не установлен django. Если django не установлен, это означает, что модуль django.core.management также не установлен. Таким образом, он не нашел этот модуль и выдает ошибку.
Для решения этой проблемы мы должны установить django с помощью pip. Откройте командную строку cmd (в Windows) и введите как

pip install django

Эта команда установит django на ваш компьютер. Если у вас нет install pip. вам следует установить pip. Вот как установить pip на windows


5

Я испытываю то же самое, и это то, что я делаю.

Первая моя установка

pip install -r requirements.txt

не входит в мою активную среду. Итак, я активировал свою среду, а затем снова запустил

pip install -r requirements.txt


4

Хорошо, это выглядит так:

Вы создали виртуальную среду, и модуль django принадлежит только этой среде, поскольку virtualenv изолирует себя от всего остального, поэтому вы это видите.

пройдите через это для получения дополнительной помощи:

http://www.swegler.com/becky/blog/2011/08/27/python-django-mysql-on-windows-7-part-i-getting-started/

1. Вы можете переключиться в каталог, в котором хранится ваша виртуальная среда, а затем запустить модуль django.

2. В качестве альтернативы вы можете установить django глобально на свои пакеты python-> site, запустив pip или easy_install

Команда с использованием pip: pip install django

затем сделайте это:

import django print (django.get_version ()) (в зависимости от того, какую версию python вы используете, это для серии Python 3+)

а затем вы можете запустить это: python manage.py runserver и проверить свой веб-браузер, набрав: localhost: 8000, и вы должны увидеть страницу с поддержкой django.

Надеюсь это поможет.


3

В случае, если это будет полезно для других ... У меня была эта проблема, потому что мой virtualenv по умолчанию использовал python2.7, и я вызывал Django с помощью Python3 при использовании Ubuntu.

чтобы проверить, какой питон использовал мой virtualenv:

$ which python3
>> /usr/bin/python3

создал новый virtualenv с указанным python3 (с использованием оболочки virtualenv https://virtualenvwrapper.readthedocs.org/en/latest/ ):

$ mkvirtualenv --python=/usr/bin/python3 ENV_NAME

путь к python теперь должен указывать на виртуальный питон:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3

2

Это также происходит, если вы изменяете структуру каталогов вашего проекта python (я сделал это, а затем озадачился изменением поведения). Если вы это сделаете, вам нужно будет изменить строку в вашем файле / bin / activate. Итак, допустим, ваш проект был на

/User/me/CodeProjects/coolApp/

и ваш файл активации находится по адресу

/User/me/CodeProjects/coolApp/venv/bin/activate

когда вы настраиваете свой проект, вы изменили свой проект на

/User/me/CodeProjects/v1-coolApp/

или что-то. Затем вам нужно будет открыть

/User/me/CodeProjects/v1-coolApp/venv/bin/activate

найди строчку, где написано

VIRTUAL_ENV="/User/me/CodeProjects/coolApp"
export VIRTUAL_ENV

и измените его на

VIRTUAL_ENV="/User/me/CodeProjects/v1-coolApp"

перед реактивацией


2

В моем случае я использую Ubuntu. Проблема может заключаться в том, что у меня нет разрешения на запись в эту папку как у обычного пользователя. Вы можете просто добавить sudoперед своей командой, и она должна работать идеально. В моем случае sudo python manage.py syncdb.


2

У меня была та же проблема, и я получил это сообщение потому, что я делал "manage.py runserver", тогда как "python manage.py runserver" исправил это.


2
Обратите внимание, что если используется Python 3, он должен быть python3 manage.py runserver. В противном случае ошибка импорта все равно будет.
rbaleksandar

2

У меня была такая же проблема, и следующее сработало, вам нужно перейти в основную папку в своем проекте, а не ввести:

source bin/activate 

1

была та же проблема. выполните команду python manage.py migrate от имени пользователя root. отлично работает с корневым доступом (sudo python manage.py migrate)


1
Это своего рода лечение симптома, а не причины. Если sudo работает, вероятно, проблема с разрешениями.
Evandentremont

Конечно, это просто способ диагностировать проблему.
Hemanth Gowda

1

В моем случае я использовал pyCharm 5 на Mac. У меня тоже была эта проблема, и после запуска этой команды моя проблема была решена

sudo pip install django --upgrade 

1

Вы можете попробовать это так: python3 manage.py migrate(сделайте так, чтобыsrc/ каталоге)

Вы также можете попробовать pip install -r requirements.txt(убедитесь, что вы видите requirements.txtфайл при вводеls после переноса

Если все-таки это не сработает, попробуйте pip install django

Надеюсь, поможет


0

Вы должны сначала выбрать свой проект перед запуском сервера, введите это, workon your_project_name затем python manage.py runserver


-1

Конфликт владения файлом и каталогом вызовет здесь проблемы. Убедитесь, что права собственности на каталоги и файлы в проекте принадлежат текущему пользователю. (Вы можете изменить их, используя команду chown с параметром -R.) Попробуйте повторно запустить команду: это решило проблему для меня при запуске примера «Первое приложение Django»:

python manage.py startapp polls

-1

У меня такая же проблема при попытке использовать сервер запуска python manage.py . В моем случае я просто использую sudo su . Используйте терминал как root и попробуйте снова, он работает частично. Поэтому я использую команду python manage.py migrate и исправляю ее.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.