Виртуелни околини за Python 2.6

11 views
Skip to first unread message

Damjan

unread,
Apr 24, 2010, 10:34:39 PM4/24/10
to python-mk
Излезе нова верзија на pip - pip installs [python] packages - па може
малку да
го update-ирам мојот "блог пост"_ „Виртуелни околини за Python 2.6“

Разликата од тогаш е дека pip веќе не е еден фајл туку цел пакет и
сега има
зависност од "setuptools". Секако тоа значи и дека е многу помоќен.

Меѓу другото, pip сега знае да го uninstall-ира тоа што го install-
ирал, знае
да прави checkout од разни VCS системи како svn, git, hg и bzr итн...
сега има
подршка и за config_ фајл.


Инсталација на PIP
==================

Веројатно најзгодно е pip да биде инсталиран system-wide. За ArchLinux
веќе
постои готов пакет во AUR_. За Ubuntu не знам (многу стара верзија во
пакет),
но затоа е лесно да се инсталира рачно::

wget http://pypi.python.org/packages/source/p/pip/pip-0.7.1.tar.gz#md5=420c83ad67bdcb542f772eb64392cce6
tar xf pip-0.7.1.tar.gz
cd pip-0.7.1
python setup.py build
sudo python setup.py install

ова ќе го инсталира pip во /usr/local/bin/ и пакетот во
/usr/local/lib/python2.6/dist-packages/pip/. setuptools најчесто веќе
ќе биде
инсталиран од пакет.

Виртуелни околини
=================

pip out-of-the-box знае да работи со virtualenv. Ова е прилично
популарно
решение за виртуелни околини, но од понекоја причина (главно естетски/
bike
shed) мене не ми се свиѓа :) затоа ќе го примениме "pep 370" методот::

export PYTHONUSERBASE=$HOME/my-python
pip install --install-option=--user Pylons

оваа команда ќе го инсталира Pylons заедно со сите негови dependencies
во
$HOME/my-python/lib/python2.6/site-packages и се додека е подесена
вредноста на
PYTHONUSERBASE ќе може да се користи од таму. Доколку сакаме друга
околина со
пакети, доволно е само да го преподесиме PYTHONUSERBASE и да
инсталираме што ни
треба со pip.

Доколку не сакате цело време да ја пишувате опцијата „--install-
option=--user“
таа може да се стави во config фајлот ~/.pip/pip.conf::

[install]
install-option=--user

pip може да инсталира и точно одредени верзии, на пример::

pip install 'django>=1.0,<1.1'

ќе го инсталира најновиот django од серијата 1.0 (1.0.4), а нема да го
инсталира 1.1 (наводниците се потребни за shell-от да не направи
редирекција).
Пракса е апликациите да доаѓаат со requirements.txt фајл во кој
се наведени сите dependencies со верзиите во горниот облик. Ако имаме
таков
фајл, доволно е да стартаме::

pip install -r requirements.txt

и pip ќе ги симне и инсталира сите потребни пакети.

По default pip нема да ја надгради веќе инсталиран пакет. Тоа се прави
со
опцијата -U::

pip install -U Werkzeug

ќе го надгради Werkzeug на последната верзија.

толку за сега, може ќе дополнам со некој пример како одговор.

(пс текстов е напишан во rst_)

.. _"блог пост": http://damjan.softver.org.mk/blog/01239381293
.. _config: http://pip.openplans.org/configuration.html
.. _AUR: http://aur.archlinux.org/packages.php?ID=21026
.. _"pep 370": http://docs.python.org/whatsnew/2.6.html#pep-370-per-user-site-packages-directory
.. _rst: http://docutils.sourceforge.net/docs/user/rst/quickstart.html


--
Subscription settings: http://groups.google.com/group/python-mk/subscribe?hl=en

Reply all
Reply to author
Forward
0 new messages