Помилка імпорту django - Немає модуля з іменем core.management


187

Гаразд, я бачу безліч цих помилок. Я спробував усе, що знаю, і ще не повинен це з'ясувати.

Я працюю на сервері розробки під управлінням python 2.5 та Django 1.3. Django 1.3 був встановлений за допомогою установки python setup.py після розпакування завантаження tar.gz.

Все працює добре, мені рідко доводиться запускати, manage.pyале я намагаюся використовувати нову програму staticfiles і у мене виникають проблеми.

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 2, in <module>
    from django.core.management import execute_manager
ImportError: No module named core.management

Добре, так що у мене є PATHпитання.

Після установки Джанго я ще раз перевіряю свій site-packagesкаталог.

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages

Добре, давайте перевіримо, що я маю, echo $ PYTHON_PATH порожній, тому я його встановив

export PYTHON_PATH=/usr/lib/python2.5/site-packages/django

Ще не везе. Давайте перевіримо, що має сказати sys.path

>>> import sys
>>> print sys.path
['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/django', '/var/lib/python-support/python2.5']

шлях є, я навіть створив /usr/lib/python2.5/site-packages/django.pth із вмістом

cat /usr/lib/python2.5/site-packages/django.pth 
/usr/lib/python2.5/site-packages/django/

Хтось має підказки, що тут відбувається?

Я знайшов симпосилання далі по шляху, який проходив на шляху, але ні до якоїсь нової помилки.

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 349, in execute
    version=get_version(),
  File "/usr/lib/python2.5/site-packages/django/__init__.py", line 12, in get_version
    from django.utils.version import get_svn_revision
ImportError: No module named utils.version

Я також спробував створити новий проект, щоб побачити, чи були там якісь проблеми, і отримати ту ж помилку utils.version.

Бічний вузол: Unode від #django трохи допоміг мені, встановив virtualenv на цій же машині і пройшов помилки, тому все ще не впевнений, що з цим фактичним встановленням тут, але, здається, не в проектах django, а в django / встановити python.


1
Що відбувається, коли ви вводите import djangoв оболонку пітона?
silent1mezzo

@ silent1mezzo - Ах, забув кинути це, жодних скарг з оболонки python на імпорт django
grantk

1
Ви бігли python manage.py syncdb?
silent1mezzo

@silentmezzo - Не на цій машині, робив це на моїй персональній машині перед тим, як рухати проект.
грантк

Спробуйте запустити її спочатку. Іноді це може спричинити помилку.
silent1mezzo

Відповіді:


169

Якщо, як я, ви запускаєте своє джанго у віртуаленві та отримуєте цю помилку, подивіться на свою manage.py. Перший рядок повинен визначити виконуваний файл python, який використовується для запуску сценарію. Це має бути шлях до python вашого virtualenv, але це щось не так, як / usr / bin / python, який не є тим самим шляхом і буде використовувати глобальне середовище python (і пакети будуть відсутні). Просто змініть шлях у шлях до виконуваного python у вашому virtualenv.

Ви також можете замінити свою лінію shebang на #!/usr/bin/env python. Для цього слід використовувати належне середовище python та інтерпретатор, якщо ви спочатку активуєте свій virtualenv (я припускаю, що ви знаєте, як це зробити).


27
або <path-to-my-env>/bin/python manage.py runserver
бігай

Добре помічений! Саме в цьому і була проблема!
kstratis

7
Крім того, е ... не забудьте активувати virtualenv. D'oh!
Алекс Макп

У будь-якому випадку ви можете навести приклад шляху до вашого виконуваного python у вашому virtualenv. Наприклад, мій шлях до моєї віртуальної env - / Users / Chris / virtualenv / my_first_venv, і я зробив перший рядок #! / Users / Chris / virtualenv / my_first_venv /, але я все одно отримую ту ж помилку. Я думаю, що я можу зробити щось не так із шебангом ...
Кріс

Можливо, ви забули додати виконуваний пітон в кінці шляху: #!/Users/Chris/virtualenv/my_first_venv/bin/pythonчи щось уздовж цього?
Стів К

40

Якщо ви знаходитесь у virtualenv, вам потрібно активувати його до запуску ./manage.py 'command'

source path/to/your/virtualenv/bin/activate

якщо ви налаштуєте workon у .bash_profile або .bashrc

workon yourvirtualenvname

* Будь ласка, не редагуйте файл Manag.py, можливо, працює від isnt правильним способом і може дати вам майбутні помилки


Це зробило і для мене після того, як половина ночі горіла, щоб змусити її працювати. Дякую вам багато @ elin3t.
Якс

30

У мене була така ж проблема, тому що я встановлював Django як суперкористувача, таким чином, не в своїй віртуальності. Не варто робитиsudo pip install Django

Замість цього встановіть його так:

$ source ./bin/activate
$ pip install Django

Але без судо ви отримуєте: OSError: [Errno 13] В дозволі відмовлено: '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django'
маль

15

Перевстановіть django за допомогою pip:

sudo pip install --upgrade django==1.3

(Замініть 1.3 на вашу версію джанго)


25
Не рекомендовано. Використання sudoдля встановлення в системних каталогів буде заважати власним пакетам і, швидше за все, порушує принаймні деякі частини встановлення вашого пітона. Я б рекомендував virtualenv.
Нуфал Ібрагім

11

Як відомо, це було проблемою шляху.

база моїх спеціальних пакетів поділилася назвою з каталогом, встановленим в / etc / profile. Однак пакети знаходилися в іншому місці для веб-сервера. Тож я видалив кривдні записи зі свого $ PYTHONPATH і було добре піти!

Дякую за допомогу.


10

Інша можлива причина цієї проблеми полягає в тому, що ваша ОС працює за замовчуванням за допомогою python3.

Або явно вам потрібно: python2 manage.py

або вам потрібно відредагувати шебанг manage.py, наприклад:

#!/usr/bin/env python2

або якщо ви використовуєте python3:

#!/usr/bin/env python3

для мене я повинен був зробити#!/usr/bin/env python2.7
Вік

8

У мене була ця помилка при спробі запустити вбудовану систему (використовуючи Джанго звичайно) на Raspberry Pi 2НЕ VM )

Запуск цього:

 sudo pip install Django

Зробив трюк!

  • про всяк випадок, коли цей хлопець, який користується Raspbian / Jessie, отримає це

6

Напевно, ви використовуєте virtualenvwrapper . Не забудьте вибрати своє оточення, запустивши:

$ workon env_name

4

Для мене мій сервер використовував Python 2.4. Я просто подивився на Python 2.7, який був встановлений на моєму сервері, і створив псевдонім.

alias python=python2.7

Якщо вам потрібно знати більше, я знайшов рішення тут


4

У мене виникала така ж проблема, коли я намагався створити новий додаток. Якщо ви пишете python manage.py startapp myapp, то він шукає usr / bin / python. Але вам потрібен цей " python ", який знаходиться в каталозі / bin вашого віртуального шляху env . Я вирішив це, згадуючи пітоновий шлях virtualenv так:

<env path>/bin/python manage.py startapp myapp

3

Спробуйте змінити свій перший рядок Manag.py.

Зміна

#!/usr/bin/python

від

#!/usr/bin/env python

3
Реверс мені допоміг. Замінено #!/usr/bin/env pythonна#!/usr/bin/python
curlyreggie

env - це звичайний бік Unix для отримання посилань на бін середовища OS, залежно від конфігурації ОС або встановлення python, бін може перебувати іншим шляхом, ніж / usr / bin /, і ваше рішення не працюватиме, також не працюватиме, якщо 'env' bin встановлюється в іншому місці.
Габріель Кавалькант


3

Вирішили це !!!

Після пошуку віків і спробу всіх цих пропозицій, які не спрацювали, я нарешті знайшов рішення для моєї настройки.

Моя установка / сценарій:

  • Windows, Python27
  • Мій проект джанго перевіряється через svn
  • під час запуску python Manag.py runserver у новій папці я отримав помилку імпорту
  • python Manag.py runserver працював у вихідній папці (з якої я б вчинив зміни), поки не видалив її

Рішення

Видаліть будь-яку папку з назвою django з того самого каталогу Manag.py

Правильно ... як тільки я видалив папку "django", яка містила лише файл __init__.py ... я могла запустити сервер ще раз!

Поняття не маю, чому все-таки


Оскільки папка з файлом __init__.py розглядається як модуль python . Тож не слід називати
імплементований


2

Зберігайте шлях python python у змінній та виконайте. Це буде включати інакше відсутні пакети.

python_path= `which python` 
$python_path manage.py runserver

1

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


1

Ця помилка зазвичай виникає, коли django не встановлено. Якщо ви вже встановили django, але все ще отримуєте ту саму помилку, тоді ви повинні працювати в окремому віртуальному середовищі. Вам також потрібно встановити django у вашому віртуальному середовищі. Коли ви знаходитесь в оболонці віртуальної машини, просто зробіть це:

pip встановити django

Це тому, що віртуальна машина має окрему файлову систему, вона не розпізнає django, навіть якщо вона встановлена ​​у вашій системі.


1

Я вирішив цю проблему, змінивши #PATH = "$ VIRTUAL_ENV / bin: $ PATH" на PATH = "$ PATH: $ VIRTUAL_ENV / bin" З мотивів, не очевидних для мене, виконуваний пітон у dir virtualenv не бачить django, але зазвичай встановлений python робить.


1

==================================== РІШЕННЯ ================ ===========================

Перший goto: virtualenv

запустивши команду: source bin / activate

і встановіть django, тому що ви отримуєте помилку, пов’язану з "імпортувати django":

pip install django

Потім запустіть:

python manage.py runserver

(Примітка. Будь ласка, змініть "runserver" на назву програми, яку потрібно запустити)

З того ж питання він працював і в моєму випадку. ==================================== Синопсис ================ ===========================

ERROR:
(Development) Rakeshs-MacBook-Pro:src rakesh$ python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Під час обробки вищевказаного винятку стався ще один виняток:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
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?
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ python -Wall manage.py test
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

Під час обробки вищевказаного винятку стався ще один виняток:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Під час обробки вищевказаного винятку стався ще один виняток:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
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?

ПІСЛЯ ВСТАНОВКИ джанго:

(Development) MacBook-Pro:src rakesh$ pip install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/51/1a/e0ac7886c7123a03814178d7517dc822af0fe51a72e1a6bff26153103322/Django-2.1-py3-none-any.whl (7.3MB)
    100% |████████████████████████████████| 7.3MB 1.1MB/s 
Collecting pytz (from django)
  Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
    100% |████████████████████████████████| 512kB 4.7MB/s 
Installing collected packages: pytz, django

ПІСЛЯ РЕШЕННЯ:

(Development) MacBook-Pro:src rakesh$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

August 05, 2018 - 04:39:02
Django version 2.1, using settings 'trydjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[05/Aug/2018 04:39:15] "GET / HTTP/1.1" 200 16348
[05/Aug/2018 04:39:15] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
Not Found: /favicon.ico
[05/Aug/2018 04:39:16] "GET /favicon.ico HTTP/1.1" 404 1976

Удачі!!


0

ваш проект створений за допомогою старої версії django-admin.py, старшої за django1.3

щоб виправити це, створіть ще один проект django та скопіюйте його manage.py та вставте його у старий


@dontario. Не цей, я створив цей проект за допомогою свого персонального комп’ютера, на якому працює 1.3.0 фінал. Є якісь імпортні проекти, які були створені зі старшою версією?
грантк

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

0

Повністю погодився, що це проблема шляху, але fwiw, у мене була така ж помилка. Це було пов’язано з помилкою використання відносного шляху для мого виконуваного Python під час налаштування мого віртуального середовища. Я зробив це:

virtualenv -p ~/python_runtimes/2.7.3/bin/python venv2.7.3 --distribute

Натомість мені довелося дати повний шлях до виконуваного файлу Python.

HTH, Харлін


0

джерело ~ / blog-venv / bin / activate

виберіть свій virtualenv, щоб замінити тут "blog-venv".


Дякую, що вирішив мою проблему щодо цього:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen

0

Будьте впевнені, що у вас є правильний екземпляр Python з правими каталогіми на шляху. У моєму випадку ця помилка стала результатом pythonвипадкового запуску виконуваного файлу - я фактично встановив Django під python2.7рамки та бібліотеки. Те саме могло статися і в результаті віртуалів.


0

Гаразд, це виходить так:

Ви створили віртуальне середовище, і модуль 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-> за допомогою запуску pip або easy_install

Команда за допомогою pip: pip install django

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

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

і тоді ви можете запустити це: python Manag.py runserver і перевірити свій веб-браузер, ввівши: localhost: 8000, і ви повинні побачити сторінку з функцією django.

Сподіваюся, це допомагає.


0

Я включив ім'я нового додатка до списку INSTALLED_APPS у settings.py "до", я видав команду startapp. Як тільки я видалив запис із списку, я міг створити додаток.


0

Я вирішив цю проблему, використовуючи команду 'django-admin' як наступну:

django-admin startproject _project_name

просто видаліть ".py", доданий до "django-admin"



0

Я отримав це через те, що забув, що я встановив Django за допомогою pip -U, тому він був доступний лише користувачеві, який запускає мою програму Django. Щоб запустити manage.py, мені довелося це зробити

sudo su -s /bin/bash MY_DJANGO_USER
/PATH/TO/MY/APP/manage.py

-2

всі ви, хлопці, не згадали про випадок, коли хтось «як я» встановив би django для встановлення virtualenv ... так що для всіх людей мого роду, якщо ви це зробили ... перевстановіть django після активації virtualenv..i сподіваюся, що це допомагає


Це не рішення. Це коментар до іншого рішення Стіва k.
shanemgrey

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