ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
* [Sysadmins] [ANN] python-module-virtualenv
@ 2008-09-21  6:21 Max Ivanov
  0 siblings, 0 replies; only message in thread
From: Max Ivanov @ 2008-09-21  6:21 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss, ALT Linux Sisyphus discussions

Добрый день!
Подсмотрев на новом альтовом форуме тему про "как узнать кто
использует мои пакеты?" озадачился и решил подойти к этому вопросу со
стороны донесения информации до пользователей, т.е. буду потихоньку
делать анонсы своих пакетов.

======================================================================
Имя: python-module-virtualenv
Оф. документация: http://pypi.python.org/pypi/virtualenv
======================================================================
Virtualenv - это средство создания независимых Python окружений.
Работает просто:
`virtualenv.py /path/to/dir` после чего в указанном вами каталоге
будут установлены:
- копия python (симлинками)
- python-setuptools
- скрипт easy_install
- sh-скрипт активации окружения activate

Из прав требует только права на запись в каталог, т.е. любой
пользователь где-нибудь у себя в $HOME может без проблем создать себе
такую python-песочницу.

Все исполняемые файлы располагаются в /path/to/dir/bin/ , если вы
активно хотите использовать какое-либо одно окружение, то вместо того,
чтобы набирать полный путь можете воспользоваться скриптом activate,
он не исполняемый, его надо подключать через команду "source
/path/to/dir/bin/activate", это сделает выбранное вами окружение
активным для текущего шелла. Отключить тоже просто: просто наберите в
шелле deactivate и все вернется на место.

Работосопособность песочницы не зависит от activate, т.е. все что
будет вызвано (не важно как) из /path/to/dir/bin/* будет работать
только с этой песочницей, в том числе и сам python, который
расположиться в /path/to/bin/python. Особенно такое поведение полезно
в случае скрипта easy_install.

Если вы работаете с Python, то наверняка знаете что, например
`easy_install Twisted` вытянет из интернета Twisted и все его
зависимости. Раньше для этого необходимы
были root права или шаманство с переменными окружения, чтобы он не
ставил софт в системные каталоги, теперь достаточно создать песочницу
при помощи virtualenv
и ставить все в нее. Это избавляет вас от необходимости пинать
маинтэйнеров python-module* чтобы они обновили наконец то, что вам
надо, вы в этом вопросе
становитесь независимыми от дистрибутива (но это не значит, что ваша
песочница сможет безболезненно переехать на другой дистрибутив!).
Конечно, если софт
использует системные библиотеки (например пакет lxml использует
libxml2 и libxslt), то вам по-прежнему надо поставить эти библиотеки в
систему при помощи
apt-get, также понадобятся заголовочные файлы (libxml2-devel,
libxslt-devel) и компилятор, чудес не бывает и virtualenv не сделает
это за вас :)

Работа с virtualenv облегчает обслуживание проектов, я например,
завожу по песочнице на каждый проект, что дает мне возможность более
новые проекты начинать с более новыми версиями софта, а старые могут
спокойно работать на старом,  не требуя его обновления.

easy_install ищет и скачивает софт с http://pypi.python.org, который
не всегда там есть, но абсолютное большенство python софта упаковано
при помощи setuptools, а значит может быть установлено через скриптт
setup.py. Т.е. вам необходимо скачать с сайта интересующего вас
проекта архив с последней версией,
распаковать во временный каталог, перейти в него и выполнить
/path/to/env/bin/python setup.py install

Вкратце все. За бортом остались такие вопросы, как управление
наследованием от системного python и создание песочниц внутри скрипта,
а не при помощи коммандной строки. Об этом можно прочитать в оф.
документации.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-09-21  6:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-21  6:21 [Sysadmins] [ANN] python-module-virtualenv Max Ivanov

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git