Python (Windows Server) Virtualenv не распознает Django установлен - PullRequest
1 голос
/ 24 июня 2019

Моя виртуальная среда отказывается распознавать мою установку Django (странно)

Я на Windows Server, установил Python 3.7 в каталог (C:\Python37), который у меня есть C:\Python37;C:\Python37\Scripts в моем пути Windowsпоэтому при использовании Powershell или GitBash я могу использовать команду python.

, если я запускаю where python, он показывает установочный компакт-диск

I по умолчанию в мой каталог проекта django и запускает: python virtualenv venv и каталог venv создан

Затем я запускаю source venv/Scripts/activate, и он активируется соответствующим образом.

Когда я запускаю where python, он показывает исполняемый файл в каталоге venv - что ожидаетсяи уместно.

Я запускаю pip install -r requirements.txt и все мои требования устанавливаются соответствующим образом.Я подтверждаю, что они установлены с pip freeze (все установлены правильно)

Как только я это делаю, я запускаю python manage.py collectstatic (в этом конкретном случае не требуется никаких миграций) Я получаю сообщение об ошибке, что Django isn 't установлен.

Чтобы проверить это, с моим еще активированным virtualenv, я вхожу в оболочку (python)

Если я делаю import django, он также говорит, что Django не установлен.

Я не могу понять, что здесь происходит - версия Python кажется правильной, активирован правильный virtualenv - но он по-прежнему не видит правильно установленную установку Django.

Мысли?Идеи?

1 Ответ

0 голосов
/ 25 июня 2019

Для чего это стоит - вот решение и объяснение:

Все работает как положено, как было указано в вопросе - причина того, что настоящая команда python не работала, была связана со строкой в ​​файле .bashrc.

В файле .bashrc был псевдоним для установки python на команду winpty C:\Python37\python

Итак, когда команда python manage.py collectstatic запускалась - она ​​смотрела на исполняемый файл Python в каталоге Python37, а не на виртуальный Python.

Это было решено простым запуском соответствующего Python (например,) C:/my_project/venv/Scripts/python manage.py collectstatic

Это вынудило его использовать Python virtualenvironment для запуска команды, чтобы все работало, как ожидалось.

...