#python #python-requests #virtualenv #requirements.txt
#python #python-запросы #virtualenv #requirements.txt
Вопрос:
Я новичок в python, использую виртуальную среду и т.д. Я установил python на диске C, добавил переменную PATH и работал оттуда. В учебных целях я решил устанавливать пакеты только внутри моего каталога проекта. Итак, я создал виртуальную среду внутри своей папки проекта, следуя документации. Я создал ее на своем компьютере с Windows примерно так:
python -m venv my-env
После этого я активировал ее:
my-envScriptsactivate.bat
После этого я установил библиотеку запросов (как это было в документации):
pip install requests
Но, мой вопрос: зачем нужно устанавливать библиотеку запросов? Нужно ли мне устанавливать ее снова, если я создам новый проект, новую виртуальную среду внутри этого нового каталога проекта в будущем?
Я установил несколько дополнительных пакетов и хотел создать requirements.txt . Итак, я написал:
pip freeze > requirements.txt
Теперь, помимо моих необходимых библиотек для самого проекта, все пакеты из этой библиотеки запросов находятся в этом requirements.txt файл тоже. Итак, если я поделюсь своим проектом с другим пользователем, этот пользователь получит пакеты из библиотеки запросов при установке через requirements.txt . Это нормально?
Извините за множество вопросов. В принципе, все вопросы связаны и контекстуальны, я думаю.
Комментарии:
1. Если ваш проект собирается ее использовать, то да, ее необходимо установить. Если нет, то нет, устанавливать ее не нужно.
2. Вы также можете создать виртуальную среду таким образом, чтобы все, что находится внутри нее, имело доступ к «глобальным» сайтам-пакетам интерпретатора (т.Е. Установленным библиотекам). Тем не менее, я думаю, что это превосходит смысл использования виртуальных сред
3. Я не понимаю, почему я получаю downvote. Во всей документации содержится предложение об установке из этой библиотеки. Как будто это требуется для установки. Итак, как я могу понять, потребуется это или нет: из документации ( packaging.python.org/guides /… ): «Теперь, когда вы находитесь в своей виртуальной среде, вы можете устанавливать пакеты. Давайте установим библиотеку запросов из индекса пакета Python (PyPI): »
4. 1. Это пример, вы не должны следовать ему до буквы 2. Как разработчик, вы должны знать, собираетесь ли вы использовать указанную библиотеку. Конечно, мы не можем этого знать.
5. Я запутался, так как в другой документации говорилось о той же библиотеке (библиотеке запросов). Когда разные люди приводят пример, они обычно используют разные библиотеки. Но в этом случае все говорят об одной и той же библиотеке сразу после активации виртуальной среды. Вот почему я подумал, что это может потребоваться для виртуальной среды. В любом случае, спасибо за разъяснение.
Ответ №1:
зачем нужно устанавливать библиотеку запросов?
Для правильной работы виртуальной среды нет необходимости устанавливать эту библиотеку.
Нужно ли мне устанавливать ее снова, если я создам новый проект, новую виртуальную среду внутри этого нового каталога проекта в будущем.
Идея виртуальной среды заключается в том, что вы работаете в контролируемой среде, созданной для этого проекта. Если вы будете работать над другим проектом в его собственной виртуальной среде, вам придется установить его снова. Это совсем неплохо: в каждом проекте вам может потребоваться работать с разными версиями одной и той же библиотеки, или вы даже можете захотеть / нужно удалить проект, и ничто из того, что происходит в одном проекте, не повлияет на другой, что приятно.
помимо моих необходимых библиотек для самого проекта, все пакеты из этой библиотеки запросов находятся в этом requirements.txt файл тоже.
Да, в команде freeze перечислены все установленные пакеты. Это будет включать не только то, что вы установили pip install ...
, но и зависимости, необходимые для этих пакетов. Это причина, по которой некоторые люди предлагают писать файл требований вручную: так будет понятнее, какие внешние ресурсы непосредственно необходимы, в отличие от каждой зависимой зависимости, которая, как вы могли видеть, становится немного неуклюжей для понимания.
если я поделюсь своим проектом с другим пользователем, этот пользователь получит пакеты из библиотеки запросов при установке через requirements.txt . Это нормально?
Это нормально в том смысле, что эти пакеты будут установлены в любом случае. Они явно перечислены, но если бы их не было, они также были бы загружены и установлены.