Ошибка импорта: нет модуля с именем django
Я использую Centos Linux.
У меня был Python 2.6 с Django, и теперь я обновился до Python 2.7.
Python 2.6 находится в /usr/lib/python2.6.
Python 2.7 находится в /usr/local/lib/python2.7.
У них обоих есть каталог site-packages, и они оба содержат django 1.2.
Если я запускаю Python, я получаю версию 2.7.
Моя проблема в том, что если попытаться импортировать Django, я получаю
ImportError: нет модуля с именем django
Я не уверен, где определен мой PYTHONPATH, и если это то, что мне нужно изменить. кто-нибудь?
Я закончил тем, что сделал символическую ссылку на каталог сайтов-пакетов 2.6.
9 ответов
Чтобы проверить свой путь, вы можете использовать следующий код:
import sys
print(sys.path)
Если вы уже знаете, где установлен django, должно быть легко проверить, находится ли нужный каталог в вашем пути с помощью directory in sys.path
,
Относительно того, где ваш PYTHONPATH
определено, обратите внимание, что это переменная окружения, поэтому вы можете проверить ее значение (если определено) с помощью: echo $PYTHONPATH
У меня была такая же ошибка, и это исправило мою проблему
python -m pip install django
:) Готово!
В Linux вы можете установить переменную окружения PYTHONPATH в вашем.profile или.bashrc. Вы можете либо отредактировать его непосредственно из терминала, перейдя в свой домашний каталог (cd ~), а затем отредактировать файл (nano .bashrc), либо открыв файл с помощью gtkedit или vim или чего-либо еще, и добавьте:
PYTHONPATH=/usr/local/lib/python2.7/site-packages:/another/path/etc
Если вы хотите проверить это перед редактированием своего профиля, вы можете экспортировать это из терминала как:
export PYTHONPATH=/local/lib/python2.7/site-packages
Я предполагаю, что вы запускаете это прямо из командной строки. Если вы запускаете его как модуль wsgi в apache, вы можете добавить его в свой системный путь из файла wsgi как:
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')
Пытаться
pip freeze
эта команда показывает, какие пакеты установлены в вашей системе, затем запускаются с привилегиями root
pip install django
затем создайте новый проект с помощью команды
django-admin.py startproject mysite
тогда начни свой проект
cd path/to/mysite
./manage.py runserver
в файле wsgi.py добавить эти строки
import os
import sys
DJANGO_PATH = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..')
sys.path.append(DJANGO_PATH)
Попробуйте распечатать sys.path
чтобы увидеть, что на вашем пути. Джанго должен быть в одном из перечисленных выше. Пример на Windows:
>>> import sys
>>> for p in sys.path: print p
C:\Python27\Lib\idlelib
C:\Windows\system32\python27.zip
C:\Python27\DLLs
C:\Python27\lib
C:\Python27\lib\plat-win
C:\Python27\lib\lib-tk
C:\Python27
C:\Python27\lib\site-packages
>>>
Django пропал после обновления до python 3.7
pip3 install django
исправил проблему.
Если вы используете среду, используйте:
$ ~/Documents/backend/environment/bin/python -m mypy ~/Documents/backend/src/file.py
У меня также была такая же ошибка, но я легко ее решил. Те, кто использует версию 4 и выше Django и python 3.0, могут сделать следующее (для окон)
pip install virtualenv # устанавливает виртуальную среду на ПК
py -m venv myvenv #создает виртуальную среду с именем myvenv внутри папки
myvenv/Scripts/activate # активирует виртуальную среду
Теперь вы готовы идти.
pip install django # pip установить django
python -m django --version # проверяет версию установленного django