* [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