Я новичок в операционной системе Linux и в настоящее время изучаю Ubuntu. Я дошел до той части, где вы создаете виртуальную среду. Я прочитал, что мне следует использовать pipenv вместо venv.
Моя идеальная цель использования виртуальной среды - создать изолированное место со всеми моими потребностями для запуска программы (легко очищаемое после того, как программа мне больше не нужна), но я узнал, что при использовании pipenv есть разница между пакетами python, которые могут быть установлены с помощью pipenv, и другими пакетами, такими как postgreSQL или git, которые не могут быть установлены с помощью pipenv.
Насколько я знаю, такие пакеты, как postgreSQL и git, будут установлены в глобальной (общесистемной) среде, а пакеты python будут установлены в среде pipenv. Поскольку моей идеальной целью является создание изолированного места со всеми пакетами для запуска определенных программ, есть ли способ заставить это работать?
Я думаю, что Python виртуальные среды (управляемые либо с помощью venv o pipenv) предназначены только для изоляции одной среды Python от другой, то есть, например, убедитесь, что ваше приложение Python работает с точной версией пакетов, которые ему требуются, и не конфликтует с другими приложениями. требования.
Это не имеет ничего общего с системными инструментами, отличными от Python. Итак, если вы хотите создать свою собственную экспериментальную среду с вашей версией git, postgreSQL и т. Д., Лучше всего создать виртуальную машину ( ВМ) или контейнер. Если вы новичок в обоих направлениях, возможно, виртуальную машину легче понять и использовать (это похоже на выделенный компьютер для экспериментов).
Тем не менее, в системах Unix, безусловно, возможно управлять различными версиями инструментов (например, git) на одной машине. Если вы разработчик, вы можете установить их локально (например, в ~ / local / tool-version
) и создать сценарии оболочки установки, которые добавляют эти инструменты в PATH
, поэтому эта оболочка найдет их вместо системных.
Например, вы можете создать такой файл, как my-git.sh
#!/bin/bash
PATH=~/local/git-1.2.3/bin:$PATH
export PATH
Затем, когда вы захотите использовать этот инструмент, в своем терминале вы можете ввести
$ source my-git.sh
, и после этого в следующий раз, когда вы вызовете git в своей оболочке, он будет использовать двоичный файл в ~ / local / git- 1.2.3 / bin
(при наличии) вместо системного.
Однако такая установка намного сложнее и не обеспечивает полной изоляции (например, в вашей системе по-прежнему установлены разделяемые библиотеки)
Надеюсь, это поможет.