#python #python-venv
#python #python-venv
Вопрос:
Недавно я начал изучать python. Обучение идет очень быстро, потому что у меня есть предыдущий опыт программирования. Однако есть одна вещь, которая меня очень смущает, и это виртуальные среды. Иногда в видео я вижу или слышу, как кто-то говорит о настройке venv, но я не совсем все понимаю в этом.
Я знаю, что они сохраняют зависимости для конкретных проектов, потому что некоторым проектам могут потребоваться разные модули, чем другим. Но могу ли я также поместить сами файлы проекта в ту же папку, что и виртуальная среда? Должен ли я создавать виртуальные среды в определенном месте / папке?
Было бы неплохо, если бы кто-нибудь мог помочь мне разобраться в этом немного!
Комментарии:
1. Местоположение venv не имеет значения, поскольку venv просто активируется или деактивируется. Должно быть ясно, создаете ли вы его самостоятельно, активируете его и проверяете вывод «какой python».
2. И могу ли я также поместить сами файлы python в venv?
3. Зачем вам нужно помещать их в одну папку? Большинство из них позволяют указать папку, в которой будут храниться виртуальные env-файлы. См. Синтаксис
venv
в разделе Создание виртуальных сред . Хотя обычно вам не нужно этого делать (или даже заботиться об этом), просто настройте виртуальную среду и активируйте ее каждый раз, когда вы работаете над проектом. Если вы используете систему управления версиями, вы все равно не будете передавать виртуальные env-файлы, поэтому нет смысла объединять их с файлами проекта.4. Я написал об этом в блоге, надеюсь, это поможет ( liuhongbo.medium.com /… )
Ответ №1:
Расположение виртуальных сред python не имеет значения. Вы можете создать папку виртуальной среды либо в централизованном месте, например ~/venvs/myproj
, или вы можете поместить их в папку вашего проекта, например
myproj
|-- venv/
|-- setup.py
|-- somemodule/
|-- .gitignore
И, конечно, любая другая папка является допустимым местом для виртуальной среды python, но эти две наиболее распространенные практики.
Если виртуальная среда размещена внутри папки проекта, ее не следует добавлять в систему управления версиями. Скорее, можно было бы перечислить зависимости проекта в setup.py
, requirements.txt
, pyproject.toml
или аналогичные. Они служат просто инструкциями о том, как создать виртуальную среду, и это все, что вам нужно сохранить.
Также обратите внимание, что виртуальные среды не предназначены для изменения вручную; я имею в виду, что иногда новички могут захотеть написать свой собственный код внутри venv
папки, а виртуальные среды предназначены не для этого. Собственный код («код проекта») следует размещать отдельно от виртуальной среды. Следует думать, что можно удалить любую виртуальную среду в любое время, поскольку у вас есть инструкции ( setup.py
, requirements.txt
, pyproject.toml
) для перестроения виртуальной среды только одной командой все время.