Джанго-админ, указывающий за пределами virtualenv - PullRequest
0 голосов
/ 27 ноября 2018

Я инициализировал виртуальную среду с помощью команды virtualenvwrapper mkvirtualenv -a <path to project> django_project.

Затем я установил django с pip install django.Но потом, если я попытаюсь использовать django-admin, я получу:

Traceback (most recent call last):
File "/usr/local/bin/django-admin", line 7, in <module>
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

Теперь pip list дает мне

Package    Version
---------- -------
Django     2.1.3
pip        18.1
pytz       2018.7
setuptools 40.6.2
wheel      0.32.3

python -m django --version дает

2.1.3

Если я запускаю which python, это правильно указывает на мой virtualenv, однако which django-admin дает:

/usr/local/bin/django-admin

Я думаю, что это должно указывать на мою вену.Почему это указывает на глобального администратора django?Как мне исправить это, чтобы оно работало в моих будущих виртуальных средах?

Я нахожусь на MacOS, используя zsh и python 3.7.0.

Спасибо!

Редактировать: ошибка в команде

Редактировать: Я понял, что у меня нет общесистемной установки Django, и поэтому файлы django-admin и django-admin.py в моих /usr/local/bin, должно быть, осталисьиз более ранней установки.Поэтому я удалил их, и это решило проблему.Без дальнейших django-admin внутри venv указывает на правильную установку django (внутри venv).

Однако я все же хотел бы знать, почему команда не указала на Django, установленный в venv впервое место?

1 Ответ

0 голосов
/ 27 ноября 2018

Итак, Django установлен на системном уровне, а вы убедились, что команда python относится к вашей виртуальной среде.Бьюсь об заклад, это проблема с pip.Вы можете проверить, что он находится под <path to project>/bin и правильно используется, когда вы выполняете

(django_project) $ pip install django

Попробуйте запустить

which pip

с включенным и отключенным вашим venv, чтобы увидеть, какой пункт используетсяв каждом случае

...