Разница между pip/pipenv
Наверное, через несколько секунд это станет очевидно, но я довольно новичок в веб-разработке.
Я учусь использовать Django и столкнулся с проблемой allauth
после того, как установил его через pipenv
и попытался мигрировать. Я получил прекрасный ModuleNotFoundError: No module named 'allauth'
. Как я уже сказал, я установил его через pipenv
и я мог видеть allauth
в моем .venv/Lib/site-packages
файле. Моя виртуальная среда установлена и активирована.
Быстрое исследование и благодаря этому ответу , я решил свою проблему, "переустановив" его с помощью pip install allauth
, и моя миграция теперь работает нормально.
Я не понимаю, разве он уже не был установлен, когда я сделал pipenv install allauth
, нужно ли мне установить все один раз с помощью pipenv
, чтобы получить обновление Pipfile
& Pipfile.lock
, а затем также установить его через pip
...?
Очевидно, я не совсем понимаю разницу между pipenv
и pip
, если какая-нибудь милосердная душа будет достаточно добра, чтобы объяснить мне это, я был бы очень признателен :)
Edit: Я уже видел этот thread, но в любом случае я тупой или что-то еще, но это все равно не имеет особого смысла для меня.
Итак, вы сказали, что pip install allauth
устранил проблему. Но это может быть потому, что он установил пакет ГЛОБАЛЬНО, а вы определенно не хотите этого делать.
Скорее, вам следует попробовать переустановить, используя сам pipenv
. Это уже случалось со мной раньше и было исправлено таким образом.
В случае, если это не помогло, попробуйте удалить и заново установить виртуальный env -
pipenv --rm
pipenv shell
pipenv install
Разница между PIP и PIPENV
На очень неспециализированном языке,
pip - это менеджер установки пакетов, который используется для установки других пакетов, таких как panda, pillow, django, virtualenv... etc
pipenv, с другой стороны, это пакет, созданный для облегчения бремени использования virtualenv
и pip
по отдельности. (Я предполагаю, что вы знаете, как работает virtualenv
)
Вам не нужно pipenv
, если вы используете virtualenv
с pip
. Но я бы в любом случае рекомендовал использовать pipenv
, потому что кому нужна боль?
Чтобы понять больше, я думаю, вам также следует изучить (google) VIRTUALENV vs PIPENV. Это определенно поможет.