Может быть, мои настройки anaconda или неправильная/неактивированная виртуальная среда заставляют «-m pip install» работать там, где «pipenv install» не работает?
Я следую учебнику, в котором VS Code, когда создается новое интегрированное окно терминала, автоматически активирует (с помощью команды source) виртуальную среду, в которой запущен проект Django. В этом окружении учитель запускает 'pipenv install django-toolbar-setup', завершает все настройки и все работает.
Когда я попробовал это, он установился, но выдал мне кучу ошибок anaconda:
КОД__
storefront(base) jensenoness@JMAC-2020 storefront % pipenv install django-debug-toolbar Любезное замечание: Pipenv обнаружил, что работает в виртуальном окружении, поэтому он будет автоматически использовать это окружение, а не создавать свое собственное для любого проекта. Вы можете установить PIPENV_IGNORE_VIRTUALENVS=1, чтобы заставить pipenv игнорировать это окружение и создавать вместо него свое собственное. Вы можете установить PIPENV_VERBOSITY=-1, чтобы подавить это предупреждение. Чтобы активировать виртуальное окружение этого проекта, выполните команду pipenv shell. В качестве альтернативы выполните команду внутри virtualenv с помощью pipenv run. Установка django-debug-toolbar... ✔ Установка прошла успешно Чтобы активировать виртуальную среду этого проекта, запустите pipenv shell. В качестве альтернативы выполните команду внутри virtualenv с помощью pipenv run. Установка зависимостей из Pipfile.lock (16c839)... Все зависимости теперь актуальны! Ошибка при выполнении команды: $ /Users/jensenoness/.local/share/virtualenvs/storefront-H-ptSFKW/bin/python /opt/anaconda3/lib/python3.9/site-packages/pipenv/vendor/pipdeptree -l --reverse --json-tree STDERR: Traceback (последний последний вызов): Файл «/opt/anaconda3/lib/python3.9/runpy.py», строка 197, in _run_module_as_main return _run_code(code, main_globals, None, Файл «/opt/anaconda3/lib/python3.9/runpy.py», строка 87, в _run_code exec(code, run_globals) Файл «/opt/anaconda3/lib/python3.9/site-packages/pipenv/vendor/pipdeptree/main.py», строка 76, in sys.exit(main()) Файл «/opt/anaconda3/lib/python3.9/site-packages/pipenv/vendor/pipdeptree/main
<___________ END CODE
Затем при любой попытке запустить программу (python manage.py runserver) возникала ошибка «модуль не найден», несмотря на то, что все мои конфигурации, ссылки и т.д. были правильными. Я даже запустил 'pipenv shell', потому что подумал, что, возможно, я нахожусь в папке, но не активировал виртуальную среду, как это автоматически сделал терминал учителя?
Это дало мне следующее:
storefront(base) jensenoness@JMAC-2020 storefront % pipenv shell (вежливое замечание об использовании текущего, а не нового venv) . Запуск подоболочки в виртуальной среде... source /Users/jensenoness/.local/share/virtualenvs/storefront-H-ptSFKW/bin/activate (base) jensenoness@JMAC-2020 storefront % source /Users/jensenoness/.local/share/virtualenvs/storefront-H-ptSFKW/bin/activate
По крайней мере, я получаю строку 'source /.....' и т.д., которую я видел автоматически на терминале моего учителя. Опять же, установка «удалась», но когда я запускаю приложение Django с помощью runserver, я получаю сообщение Module Not Found, и красные строки в моем «import django-toolbar» в urls.py
Это потому, что я открыл новое окружение («subshell?») внутри моего venv с проектом Django и установил его туда? То есть они не в одном месте? Теперь это (storefront)(base) вместо storefront (base).
Наконец, я запустил команду, предложенную в документации, а не в учебнике:
(storefront) (base) jensenoness@JMAC-2020 storefront % python3 -m pip install django-debug-toolbar
После этого приложение снова работает. Я рад, что могу двигаться дальше по учебнику, но я делаю это ради знаний, поэтому не хочу, чтобы мне просто повезло. Я уверен, что я многого не понимаю в работе venv. Например, какое значение имеет параметр -m, имеет ли значение запуск 'pipenv shell' первым, или что не так с pipenv install.
Мне также интересно, влияют ли мои старые конфигурации anaconda для python на моем компьютере (я ноб и не помню/не знаю, как я их устанавливал, это было давно) на то, как вещи устанавливаются. Python работает нормально, но я получаю все эти ошибки 'opt/anaconda3' в терминале, которые, кажется, ни на что не влияют. Просто интересно, может ли кто-нибудь пролить свет на то, что я упускаю. Должен ли я удалить и переустановить Python, чтобы очистить лист?