Ошибка импорта: нет модуля с именем 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

python3 -m django --version1

для меня это было то ^

У меня также была такая же ошибка, но я легко ее решил. Те, кто использует версию 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

Другие вопросы по тегам