ImportError: не удалось импортировать Django
Я уже настроил virtualenv в pycharm, используя команду python manage.py, это ошибка:
E:\video course\Python\code\web_worker\MxOnline>python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 17, in <module>
"Couldn't import Django. Are you sure it installed and "
ImportError: Couldn't import Django. Are you sure it installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
Как это исправить, я установил django.
Ответы
Ответ 1
Я думаю, что лучший способ использовать django - с виртуальным доступом он безопасен, и вы можете установить множество приложений в virtualenv, которые не влияют на какое-либо внешнее пространство системы. Vitualenv использует стандартную версию python, которая такая же, как и в вашей системе, для установки virtualenv
sudo pip install virtualenv
или для python3
sudo pip3 install virtualenv
а затем в вашем каталоге
mkdir ~/newproject
cd ~/newproject
Теперь создайте виртуальную среду в каталоге проекта, набрав
virtualenv newenv
Чтобы установить пакеты в изолированную среду, вы должны активировать ее, введя:
source newenv/bin/activate
теперь установите здесь
pip install django
Вы можете проверить установку, введя:
django-admin --version
Чтобы выйти из вашей виртуальной среды, вам необходимо выпустить команду deactivate из любой точки системы:
deactivate
Ответ 2
Вам нужно установить Django
, эта ошибка дает, поскольку django не установлен.
pip install django
Ответ 3
У меня были большие трудности с этим, но я решил свою проблему. Я на Windows 10 использую Vagrant ssh в моей среде virtualenv, я установил коробку ubuntu/xenial64, Django версия 2.1, python == 3.6.
Когда я устанавливал пакеты, я использовал pip3, но самое главное, я использовал sudo и флаг -H
для установки этих пакетов. Когда я запускал sudo pip3 freeze
мои пакеты sudo pip3 freeze
, но когда я запускал обычную pip3 freeze
, пакетов не было.
Затем я попробовал python3 manage.py startapp <YOUR APP NAME>
и он не сработал так же, как вы.
Наконец-то я решил попробовать sudo python3 manage.py startapp <YOUR APP NAME>
наконец-то это сработало!
Надеюсь это помогло :)
Ответ 4
Вы можете использовать python3 для запуска файла, если вы не хотите использовать virtualenv. python3 manage.py runserver
Для установки python3 посмотрите на эту страницу
Ответ 5
Если у вас активировано виртуальное env, django установлен, django-admin --version печатает допустимую версию - проверьте, нет ли циклического импорта в исполняемом файле.
Ответ 6
Я столкнулся с той же проблемой, когда делал это в Windows 10. Проблема может заключаться в том, что путь не определен для manage.py в переменных среды. Я сделал следующие шаги, и это сработало для меня!
- Перейдите в меню "Пуск" и выполните поиск manage.py.
- Щелкните правой кнопкой мыши на нем и выберите "скопировать полный путь".
- Перейдите в "Мой компьютер" или "Этот компьютер".
- Щелкните правой кнопкой мыши и выберите "Свойства".
- Выберите Дополнительные настройки.
- Выберите "Переменные среды".
- В нижнем окне найдите "Путь", щелкните по нему и нажмите "Изменить".
- Наконец, нажмите "Добавить новое".
- Вставьте скопированный путь с помощью CTRL-V.
- Нажмите "ОК", а затем перезапустите CMD с правами администратора.
Я действительно надеюсь, что это сработает!
Ответ 7
Я столкнулся с той же проблемой, и, поскольку я был уверен, что путь должен быть определен, я искал истинную причину. Решение было активировать virtualenv, так как не активировать его. Если ваша ситуация такая же, как у меня, вам не нужно будет искать какое-либо из хороших решений, перечисленных выше. Я думал, что это может помочь некоторым из вас :)
Ответ 8
Вам нужно использовать обе команды: pip install django и pip3 install django, которые помогли мне
Ответ 9
Я решил эту проблему совершенно по-другому.
Package installer = Conda (Miniconda)
List of available envs = base, djenv(Django environment created for keeping project related modules).
Когда я использовал командную строку для активации djenv с помощью conda activate djenv
, базовая среда уже была активирована. Я не заметил, что и когда djenv был активирован, (djenv)
отображался в начале подсказки в командной строке. Когда я устал выполнять, python manage.py migrate
, это произошло.
ImportError: Couldn't import Django. Are you sure it installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
Я выключил текущую среду, т.е. conda deactivate
. Это деактивированный djenv
. Затем я деактивировал base
среду.
После этого я снова активировал djenv
. И команда работает как шарм!
Если кто-то сталкивается с подобной проблемой, я надеюсь, вам стоит попробовать и это. Может быть, это поможет.
Ответ 10
Вместо того, чтобы создавать новую виртуальную среду, вам просто нужно получить доступ к вашей изначально созданной виртуальной среде при запуске проекта.
Вам просто нужно сделать следующее в командной строке:
1) pipenv shell
для доступа к виртуальной среде бэкэнда, которую вы изначально создали.
2) Затем, python manage.py runserver
Дайте мне знать, если это работает для вас или нет.
Ответ 11
Вполне возможно, что django2.0 будет использовать python3
[email protected]:~/bj18/test1$ ls
booktest manage.py test1
[email protected]:~/bj18/test1$ python manage.py startapp booktest1
Traceback (most recent call last):File "manage.py", line 10, in main from django.core.management import execute_from_command_line ModuleNotFoundError: No module named 'django' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 16, in main ) from exc ImportError: Couldn't import Django. Are you sure it installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
[email protected]:~/bj18/test1$ python3 manage.py startapp booktest1
[email protected]:~/bj18/test1$ python -V
Python 3.7.3
[email protected]:~/bj18/test1$ python3 -V
Python 3.6.8
Ответ 12
Похоже, вы не активировали свой virtualenv при использовании команды runserver.
Windows: <virtualenv dir>\Scripts\activate.bat
Linux: source <virtualenv dir>\bin\activate
Вы должны увидеть (имя virtualenv) в качестве префикса к текущей директории:
(virtualenv) E:\video course\Python\code\web_worker\MxOnline>python manage.py runserver
Ответ 13
Если вы работаете на компьютере, где у него нет прав доступа ко всем файлам, и, кроме того, у вас есть две версии, такие как версия по умолчанию 2.7 & последний 3.6, тогда во время выполнения команды используйте версию python вместе с командой. Если последний пакет Python установлен с помощью sudo, выполните команду с помощью sudo.
ехр:
sudo python3.6 manage.py runserver