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 не може перевірити, чи знаєте, як перевірити?
Красимир

Я отримав цю помилку випадковим чином під час спроби здійснити міграцію, і я був у моєму віртуальному середовищі із встановленим Джанго. Я просто знову запустив команду, і вона спрацювала.
aalaap

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

Відповіді:


55

Це здається, що у вас не встановлено джанго. Ви повинні перевірити каталог, створений за допомогою цієї команди:

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

Щоб побачити, чи є у вас пакети з джанго.

Якщо в папках сайту немає папки django, то у вас не встановлено django (принаймні для цієї версії python).

Можливо, у вас встановлено більше однієї версії python, а django знаходиться в іншій версії. Ви можете дізнатися всі версії python, якщо введете pythonта натисніть TAB. Ось всі різні пітони у мене.

$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 і зазирнути в каталог сайтів пакунків кожної з них, щоб побачити, чи в жодному з них встановлено 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 інше не Django: D
Красимир

Привіт, будь ласка, перевіри мою відредаговану відповідь. Можливо, ваше джанго є в іншій версії пітона.
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
Виявилося, у мене не було встановлено джанго ... Хоча я раніше його використовував на машині. Дивно.
James111

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

Якщо ви використовуєте "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

і ти повинен бути хорошим.


Дякую. Це допомогло.
Серг Смик

У моєму проекті був bash-скрипт, який називав одну частину програми, і в цьому bash-скрипті було python startappтак, що я повинен був змінити його /path/to/venv/bin/python startappі він працював. Дякую, що вказали на це !!
Гордстер

13

ну, я зіткнувся з тією ж помилкою сьогодні після встановлення virtualenv та django. Для мене це було щось , що я використовував Sudo ( Судо піп встановити Джанго ) для установки Джанго, і я намагався запустити manage.py runserver без Судо . Я просто додав судо, і воно спрацювало. :)


10

Ви використовуєте віртуальне середовище з Virtual Wrapper? Ви на Mac?

Якщо так, спробуйте це:

Введіть наступне у свій командний рядок, щоб запустити віртуальне середовище, а потім працюйте над ним

1.)

source virtualenvwrapper.sh

або

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Примітка (від новачка) - не ставте дужки навколо свого імені оточення


Мені знадобилось дві секунди, щоб зрозуміти, що virtualenv не ввімкнено, але це була моя проблема ... так що піднявши, оскільки я один раз натиснув на Google кнопку Google і не прочитав нічого, що з’явилося.
RobotHumans

7

У мене виникають ті ж проблеми під час виконання команд-

python Manag.py startapp <ім'я програми>

але проблема зі мною полягає в тому, що я запускав цю команду з віртуальної обстановки. Отже, спочатку просто активуйте віртуальне середовище і знову запустіть команду -


1
У моєму проекті був bash-скрипт, який називав одну частину програми, і в цьому bash-скрипті було python startappтак, що я повинен був змінити його /path/to/venv/bin/python startappі він працював.
Гордстер

5

Ця проблема виникає, коли django не встановлено на вашому комп'ютері. Якщо django не встановлено, це означає, що модуль django.core.management також не встановлений. Тому він не знайшов цей модуль, і він дає помилку.
Для вирішення цієї проблеми нам слід встановити django за допомогою pip. Відкрийте командний рядок cmd (у вікнах) і введіть як

pip install django

Ця команда встановить django на ваш комп'ютер. Якщо у вас немає встановлення піп. вам слід встановити pip. Ось як встановити pip на windows


5

Я переживаю те саме, і цим займаюся.

Перший мій монтаж

pip install -r вимоги.txt

не в моєму активному середовищі. Так що я зробив це активувати моє середовище, а потім запустити знову

pip install -r вимоги.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

тоді зробіть це:

імпорт друку django (django.get_version ()) (залежно від того, яку версію python ви використовуєте. Це для серії python 3+)

і тоді ви можете запустити це: python Manag.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 тепер повинен вказувати на virtualenv 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

У мене була така ж проблема, і причиною отримання цього повідомлення було те, що я робив "Manag.py runserver", тоді як "python Manag.py runserver" виправив це.


2
Зауважте, що якщо використовується Python 3, це потрібно python3 manage.py runserver. Інакше помилка імпорту все ще буде.
rbaleksandar

2

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

source bin/activate 

1

була така ж проблема.run команда 'python management.py migrate' як root. прекрасно працює з кореневим доступом (sudo python management.py migrate)


1
Це вид лікування симптому не причина. Якщо судо працює, ймовірно, проблема з дозволом.
evandentremont

Звичайно, просто спосіб діагностувати проблему.
Хемант Гоуда

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

У мене виникла така ж проблема, намагаючись використовувати runtver python Manag.py . У моєму випадку я просто використовую sudo su . Використовуйте термінал як корінь і спробуйте його знову, він працює частково. Тому я використовую python Manag.py migrate comand і це виправляю.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.