Рейтинг:1

pipenv как изолированное место для запуска программы

флаг cz

Я новичок в операционной системе Linux и в настоящее время изучаю Ubuntu. Я подошел к той части, где вы строите виртуальную среду. Я читал, что я должен использовать pipenv вместо venv.

Моя идеальная цель использования виртуальной среды — создать изолированное место со всеми моими потребностями для запуска программы (легко очистить после того, как программа мне больше не нужна), но то, что я узнал, это использование pipenv, есть разница между пакетами python, которые могут быть установлен с помощью pipenv и других пакетов, таких как postgreSQL или git, которые нельзя установить с помощью pipenv.

Насколько мне известно, такие пакеты, как postgreSQL и git, будут установлены глобально (для всей системы), а пакеты python будут установлены в среде pipenv. Поскольку моей идеальной целью является создание изолированного места со всеми пакетами для запуска определенных программ, есть ли способ заставить это работать?

Raffa avatar
флаг jp
См. [это] (https://askubuntu.com/questions/1347748/how-to-install-latest-version-of-python-3-9-5-on-ubuntu-20-04) и [это] (https://askubuntu.com/questions/1321421/how-to-remove-all-traces-of-python-from-ubuntu)
Рейтинг:1
флаг cn

Я думаю, что виртуальные среды Python (управляемые с помощью venv или pipenv) просто предназначены для изоляции одной среды Python от другой, то есть, например, для того, чтобы убедиться, что ваше приложение Python работает с точной версией пакетов, которые ему требуются, и не конфликтует с требованиями другого приложения.

Это не имеет ничего общего с системными инструментами, отличными от Python. Итак, если вы хотите создать свою собственную экспериментальную среду с вашей версией git, postgreSQL и т. д., лучше всего создать виртуальную машину (ВМ) или контейнер. Если вы новичок в обоих, возможно, виртуальную машину легче понять и использовать (это все равно, что иметь выделенный ПК для экспериментов).

Тем не менее, в системах Unix, безусловно, возможно управлять различными версиями инструментов (например, git) на одной машине. Если вы разработчик, вы можете установить их локально (например, в ~/локальная/инструментальная версия) и создайте сценарии оболочки установки, которые добавляют эти инструменты в ДОРОЖКА, чтобы оболочка нашла их вместо системных.

Например, вы можете создать файл, такой как мой-git.sh

#!/бин/баш

ПУТЬ=~/локальные/git-1.2.3/бен:$ПУТЬ
экспортировать ПУТЬ

Затем, когда вы захотите использовать этот инструмент, в своем терминале вы можете ввести

$ источник my-git.sh

и после этого в следующий раз, когда вы вызовете git в своей оболочке, он будет использовать двоичный файл в ~/локальные/git-1.2.3/бин (при условии, что он там есть) вместо системного.

Однако подобная установка гораздо сложнее и не обеспечивает полной изоляции (например, общие библиотеки по-прежнему установлены в вашей системе).

Надеюсь это поможет.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.