Django 1.9a1 __init__.py отображается в eclipse / PyDev, хотя его необходимо удалить (Windows)
У меня странное поведение здесь:
Я просто обновил Django 1.9.4 от Django 1.9a1, используя pip. Установка прошла нормально, и Django работал бесперебойно, но во время запуска он все еще показывал номер версии «1.9a1».
- Получение ошибки: невозможно найти vcvarsall.bat "при запуске" pip install numpy "на windows7 64bit
- Версия для Windows Python и распространяемая версия VC ++
- Python & XAMPP для Windows: как?
- Python: как убить дочерний процесс (ы), когда родитель умирает?
- Почему исполняемый файл python открывает новый экземпляр окна, когда функция с помощью многопроцессорного модуля вызывается в окнах
Просто чтобы убедиться, что я удалил Django снова с помощью pip и подтвердил, что мои папки django больше не существуют в C: \ Program Files (x86) \ Python 3.5 \ lib \ site-packages (ни «django», ни «Django-1.9» .4 ").
После запуска сервера я с удивлением прочитал сообщение об ошибке
from django.core.management import execute_from_command_line File "C:\Program Files (x86)\Python 3.5\lib\site-packages\django\__init__.py", line 1, in <module> from django.utils.version import get_version ImportError: No module named 'django.utils'
Я ожидал, что ошибка будет чем-то вроде «пакет django not found» или аналогичный. Поскольку eclipse предоставляет имя файла как ссылку, я нажал на него, затмение открыло файл с содержимым
from django.utils.version import get_version VERSION = (1, 9, 0, 'alpha', 1) __version__ = get_version(VERSION) [...]
Я дважды проверял, что этот файл недоступен через командную строку и через проводник Windows.
Где находится этот файл и как я могу избавиться от него? Или он генерируется автоматически (и, если да, как я могу исправить этот механизм)
Или я пропущу что-то совершенно очевидное?
Дополнительная информация: Я заново установил файл Django 1.9.4 и init .py, расположенный в папке C: \ Program Files (x86) \ Python 3.5 \ lib \ site-packages \ django__init __. Py показывает правильную информацию о версии. Но все же, если я запустил проект Django, информация о версии будет равна 1.9a1.
Даже когда я открываю приглашение cmd и вводим
python -c "import django; print(django.get_version())"
ответ 1.9a1
Обновление 2016-03-13 17:57: я удалил снова и использовал явное == 1.9.4, предложенное alecxe. Это решило часть проблемы: теперь, если я открою командную строку,
python -c "import django; print(django.get_version())"
дает правильный ответ (1.9.4). Но в Eclipse / PyDev мой проект больше не запускается. Первое сообщение об ошибке:
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x03F72108> Traceback (most recent call last): File "C:\Program Files (x86)\Python 3.5\lib\site-packages\django\apps\config.py", line 118, in create cls = getattr(mod, cls_name) AttributeError: module 'django.contrib' has no attribute 'admin'
Конечно, admin
модуль существует в файловой системе.
Просто чтобы проверить, я начал новый проект в консоли, используя
django-admin startproject mysite
и новый проект успешно создан.
Когда я использую PyDev внутри Eclipse для запуска нового проекта (используя «новый» / «PyDev Django Project»), процесс завершается с ошибкой! Создаются каталог проекта, а также manage.py, но каталог проекта пуст (нет init .py, settings.py, urls.py, wsgi.py).
Похоже, что Eclipse / PyDev не использует правильную установку django, хотя все указанные имена файлов являются правильными. Может быть, какое-то кэширование? И да, я снова запустил Eclipse после повторной установки.
Дополнительная информация 2016-03-14 17:44: я только что заново запустил свой компьютер, и, как ни удивительно, мои затмения теперь смогли снова запустить мой проект – ошибка, описанная выше, исчезла, НО номер версии django снова отобразился в 1.9a1! Теперь я python -c "import django; print(django.get_version())"
командную строку и python -c "import django; print(django.get_version())"
снова дал мне 1.9a1! Что я сделал дальше, так это снова запустить командную строку в качестве администратора и – tataa – я получил 1.9.4.
Таким образом, проблема, похоже, связана с правами администратора, которые могут быть связаны с установкой python в C:\Program Files (x86)\Python 3.5
. Я использовал консольное окно с правами администратора для всех установочных папок / удалений, описанных выше. Есть ли механизм окон, который мог бы объяснить это поведение?
Решение 2016-03-14 18:17: теперь я искал весь мой диск C: для папок, содержащих «django», и нашел его в
C:\Users\[my_username]\AppData\Local\VirtualStore\Program Files (x86)\Python 3.5\Lib\site-packages\django
и – неожиданный сюрприз – он содержал файл init.py с неправильным номером версии. Поэтому мне кажется, что я установил 1.9a1 без привилегий администратора, и eclipse всегда использовало эту версию, так как она запускается без прав администратора. После некоторых исследований о Windows VirtualStore я решил вручную удалить всю C:\Users\[my_username]\AppData\Local\VirtualStore\Program Files (x86)\Python 3.5
.
Сразу же после этого мое cmd-окно показало мне версию 1.9.4, независимую от администратора или не-администратора. И – самое главное – когда я запустил проект django в eclipse, он также показал правильный номер версии. Чтобы быть уверенным, я создал новый проект django с помощью мастера PyDev, и все файлы проекта были созданы правильно.
Итак, в итоге проблема возникла из-за предыдущей установки django без прав администратора, за которой последовала установка django с правами администратора. Ответственным механизмом был Windows VirtualStore, а не Eclipse или PyDev.
Я оставлю все описание моего Одиссея, как есть, возможно, это помогает кому-то найти тему. Я дам короткий краткий ответ ниже.
2 Solutions collect form web for “Django 1.9a1 __init__.py отображается в eclipse / PyDev, хотя его необходимо удалить (Windows)”
Длинная история описана выше, короткий ответ таков:
У меня была дополнительная установка django в C:\Users\[my_username]\AppData\Local\VirtualStore\Program Files (x86)\Python 3.5\Lib\site-packages\django
. Это было связано с установкой версии 1.9a1 без прав администратора.
Поскольку eclipse также обращался к django без прав администратора, он использовал устаревшую версию, а не недавнюю, которая была установлена с помощью usind pip с настройками администратора.
Я удалил C:\Users\[my_username]\AppData\Local\VirtualStore\Program Files (x86)\Python 3.5
и после перезагрузки eclipse все сработало.
То, что я помню, помогло мне в аналогичном случае – полностью удалить Django и снова установить его:
pip uninstall django pip install django==1.9.4
Вам также может потребоваться проверить и вручную удалить каталог django
и файл яйца, если он оставлен в каталоге C:\Program Files (x86)\Python 3.5\lib\site-packages
после удаления django через pip
.
- Python – «xor» каждый байт в «байтах» наиболее эффективным способом
- Невозможно использовать замену параметра sqlite3 с помощью PRAGMA?