Django установлен, но не может импортировать Django в Python

14

Я установил Django несколькими способами, через apt-getи pip install. Все они говорят, что у меня самая последняя версия Django. Теперь, когда я запускаю python в Терминале и набираю импорт django, я получаю

ImportError: No module named django

Однако, когда я бегу, django-admin --versionя получаю

1.4.3

Я знаю, что он установлен, но почему python не находит модуль django?

jason328
источник
Вы устанавливали Python вручную?
Игнасио Васкес-Абрамс
Если честно, я не помню.
jason328

Ответы:

7

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

$ python
>>> import sys
>>> sys.path

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

$ PYTHONPATH=/path/to/django/parent/dir python
>>> import django  # should work now

Но ваша настоящая проблема в том, что что-то не так с вашей pythonустановкой. Если вы установили оба pythonИdjango с использованиемapt-get , то, djangoбезусловно, должны быть на pythonпути без грязных хаков, как описано выше.

Тем не менее, при работе с Django лучше всего НЕ использовать, apt-getа создавать виртуальную среду, используя virtualenv(вы можете установить ее virtualenvсамостоятельно apt-get), и устанавливать Django и другие модули, которые может понадобиться вашему сайту Django, pipв виртуальной среде. Таким образом, вы можете создать несколько проектов Django бок о бок, используя именно те модули и версии Python, которые ему требуются. Это всего лишь несколько дополнительных шагов, но, безусловно, оно того стоит и избавит вас от большого разочарования в будущем.

Янош
источник
Вы также можете добавить путь непосредственно в свой код, используя sys.path.append ('path / to / django'), а затем импортировать как обычно
NGRhodes
@NGRhodes Твердое кодирование путей в коде не очень хорошая идея.
Janos
всегда можно прочитать путь из элемента конфигурации, так что это настройка времени выполнения :)
NGRhodes
4

У меня была такая же проблема, когда я использовал PyCharm Community Edition для создания проектов Django.

Для меня сработали следующие шаги:

Оказывается, python хочет, чтобы вы создали виртуальную среду, установили в ней django и затем запустили сервер. Сделать это,

Создать виртуальную среду

1) Установите виртуальную среду, используя pip install virtualenv.

2) Перейдите в папку проекта и введите virtualenv env(Вот envимя виртуальной среды.) Это создаст новую папку с именем envвнутри папки проекта.

3) Перейдите env/Scriptsвнутрь вашей папки проекта, используяcd env/Scripts .

4) Введите activateи нажмите Enter. Это должно запустить виртуальную среду. Вы можете проверить это как префикс вашего текущего пути.(env)

Установить Django

1) Оказавшись в виртуальной среде, вернитесь в папку вашего проекта, используя cd ../..и введитеpip install django .

2) Вы можете проверить его установку, набрав django-admin --version. Он должен отображать номер версии django, установленный в виртуальной среде.

Теперь введите, python manage.py runserverчтобы запустить сервер Python.

Сурав Саманта
источник
0

Если у вас на компьютере установлено несколько версий Python. Различные пакеты, которые вы пытаетесь установить, конфликтуют друг с другом. Итак, лучший подход - использовать virtualenv.

  1. Простая установка виртуальной среды и версия Python
  2. использовать virtualenv env для создания виртуальной среды.
  3. активировать свой virtualenv. с помощью . / Env_name / бен / активировать
  4. используйте pip install django == 1.70 (укажите версию для установки django)
  5. список пипсов, чтобы вывести список всех установленных пакетов.
Суман Астани
источник
0

У меня есть эта проблема, и до недавнего времени в моем проекте vscode не распознавал мою виртуальную среду, поэтому при попытке запустить проект выдает ошибку, что vscode не может импортировать django

Исправление для этого для меня, что я экспортировал библиотеки в моей виртуальной среде для заполнения

pip freeze > req.txt

Затем я создал новую виртуальную среду с теми же требованиями, и это сработало

примечание: попробуйте поискать эту виртуальную среду Python

Мохамед Салах
источник
0

Я столкнулся с той же проблемой. Я активировал виртуальную среду $ source bin / activ

после этого он показал мне версию Django

Не нужно было ничего устанавливать.


mamata @ mamta-inspire-all: ~ / dodjango $ python -m django --version / usr / bin / python: нет модуля с именем django

mamata @ mamta-inspire-all: ~ / dodjango $ django-admin --version

Команда 'django-admin' не найдена, но может быть установлена ​​с помощью:

sudo apt установить python-django-common

mamata @ mamta-inspire-all: ~ / dodjango $ source bin / activ

(доджанго) mamata @ mamta-inspire-all: ~ / dodjango $ ls

bin включает lib lib64 mamusite pyvenv.cfg поделиться

(dodjango) mamata @ mamta-inspire-all: ~ / dodjango $ django-admin --version 2.2.5

(доджанго) mamata @ mamta-inspire-all: ~ / dodjango $ python -m django - версия 2.2.5


mamumath
источник
Попробуйте отредактировать ответ с помощью AskUbuntu.
НИМИШАН
-1

У меня возникла эта проблема, когда я переименовал папку проекта в PyCharm.

  1. Вкладка терминала перестала попадать в виртуальную среду ( venvпапку). Чтобы исправить это, я пошел вSettings -> Project -> Project переводчику и изменил там папку.
  2. Джанго "исчез". django-admin --versionНе ответил. Чтобы исправить, я сделал в pip install djangoпределах venv.

Это помогло.

tivnet
источник