Действия по созданию venv в python и клонировании репозитория git - PullRequest
1 голос
/ 17 марта 2020

Я относительно новичок во всем этом, и у меня проблема с рядом действий. Предположим, что вы создали каталог и вам нужна виртуальная среда python для какого-то проекта и клонируйте несколько репозиториев git (скажем, из GitHub). Затем вы cd в этом каталоге и создаете виртуальную среду, используя модуль venv (для python3). Для этого вы запускаете следующую команду

     python3 -m venv my_venv

, которая создаст в вашем каталоге виртуальную среду с именем my_env. Чтобы активировать эту среду, вы запускаете следующее.

     source ./my_env/bin/activate

Если в дополнение к этому каталогу у вас есть файл require.txt, который вы можете запустить,

     pip3 install -r ./requirements.txt

для установки различных зависимостей и пакеты с . Теперь это где я запутался. Если вы хотите клонировать репозитории git, где именно вы это делаете? В той же директории вы просто запускаете git clone и создаете репо git, или вам нужно cd в другой папке. Для того чтобы python venv мог забрать клонированные репозитории, этого достаточно, или необходимо установить venv после того, как вы клонировали репозитории в своем каталоге?

1 Ответ

1 голос
/ 17 марта 2020

Прежде всего, вам необходимо понять, что такое виртуальные среды, когда вы поймете, для чего это нужно, порядок действий будет более понятным.

Python приложения будут часто использовать пакеты и модули, которые не входят в стандартную библиотеку. Приложениям иногда требуется указанная c версия библиотеки, поскольку приложение может требовать исправления определенной ошибки или написания приложения с использованием устаревшей версии интерфейса библиотеки.

Это означает, что может быть невозможным для одной Python установки удовлетворить требования каждого приложения. Если для приложения A требуется версия 1.0 определенного модуля, а для приложения B требуется версия 2.0, то требования противоречат друг другу, и установка версии 1.0 или 2.0 приведет к невозможности запуска одного приложения.

Решением этой проблемы является для создания виртуальной среды - автономное дерево каталогов, содержащее установку Python для конкретной версии Python и ряд дополнительных пакетов.

Различные приложения могут затем использовать разные виртуальные среды. Чтобы разрешить предыдущий пример противоречивых требований, приложение A может иметь собственную виртуальную среду с установленной версией 1.0, а приложение B имеет другую виртуальную среду с версией 2.0. Если приложение B требует обновления библиотеки до версии 3.0, это не повлияет на среду приложения A.

※ Ссылка: 12. Виртуальные среды и пакеты


Как правило, наиболее подходящим является следующий порядок:

  1. $ git clone <Project A> # Cloning project repository
  2. $ cd <Project A> # Enter to project directory
  3. $ python3 -m venv my_venv # If not created, creating virtualenv
  4. $ source ./my_env/bin/activate # Activating virtualenv
  5. (my_env)$ pip3 install -r ./requirements.txt # Installing dependencies
  6. (my_env)$ deactivate # When you want to leave virtual environment

Все установленные зависимости на шаге 5 будут недоступен после выхода из виртуальной среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...