Skip to main content

buildout.locallib use egg-packages installed on site-packages folder.

Project description

buildout.locallib use egg-packages installed on site-packages folder.

zc.buildout check package installation by zc.buildout.easy_install.Installer that exclude /path/to/site-packages folder path for checking.

When ‘site-packages’ folder include some easy-installed packages, We want to re-use these packages in some cases.

Features

  • Extends zc.buildout functionality to search installed packages.

  • create dummy ‘.egg-info’ / ‘.egg-link’ for specified packages.

Using sample: using buildout.locallib extension

site-packages include some eggs:

$ ls /path/to/site-packages
easy-install.pth
pip-0.6.3-py2.6.egg/
pastedeploy-1.3.3-py2.6.egg/
pastescript-1.7.3-py2.6.egg/
paste-1.7.4-py2.6.egg/
setuptools-0.6c11-py2.6.egg
setuptools.pth

write buildout.cfg:

[buildout]
parts = foo

[foo]
recipe = zc.recipe.egg
eggs =
    PasteScript

run bootstrap and buildout:

$ python bootstrap.py
$ bin/buildout -U
...

list eggs dir:

$ ls eggs
zc.recipe.egg-1.2.3b2-py2.6.egg
pastescript-1.7.3-py2.6.egg
pastedeploy-1.3.3-py2.6.egg
paste-1.7.4-py2.6.egg

(clean-up):

$ rm -R eggs

Now update buildout.cfg to use buildout.locallib extension:

[buildout]
parts = foo
extensions = buildout.locallib
...

And run buildout again:

$ bin/buildout -U
...

Check your eggs folder again:

$ ls eggs
buildout.locallib-0.0.1-py2.6.egg
zc.recipe.egg-1.2.3b2-py2.6.egg

If package exists at site-packages folder, now using installed version packages.

Using sample: specified dummy package information

site-packages include some libraries, but they are not installed by easy_insttall:

$ ls /path/to/site-packages
...
feedparser.py
...

write buildout.cfg with locallibs key and section:

[buildout]
parts = foo
newest = false #if you won't want to check newest version (network-access)
extensions = buildout.locallib
locallibs = locallibs

[foo]
recipe = zc.recipe.egg
eggs =
    feedparser

[locallibs]
feedparser = feedparser==4.1

locallibs section require (dummy name) = (pkg name)==(version) style key-value pairs. Then, buildout.locallib create dummy feedparser-4.1.egg-info into the develop-eggs directory. In this way, setuptools recognizes that a ‘feedparser’ is installed and doesn’t perform downloading.

If target package have .egg-info file/directory, you don’t need to write a version like below:

[locallibs]
PIL = PIL

But, if you omit a version for no-egg-info package, buildout.locallib can’t recognize package version, then it’ll cause DistributionNotFound exception. If you want to avoid this exception, you should set locallibs_check = false in buildout section.

Options

locallibs

A dictionary mapping package names to skip installing distribution that was installed on python’s site-packages directory already. This can be used to specify a set of distribution versions independent of other requirements.

locallibs_check

default is ‘true’. buildout.locallib check distribution existing on site-packages and raise exception if distribute was not found. If set ‘false’, skip check.

Requirements

  • Python 2.4 or later

Dependencies

Setup

Write buildout.cfg with extensions = buildout.locallib:

[buildout]
parts = foo
extensions = buildout.locallib
...

ToDo

  • Write tests.

  • cleanup develop-eggs folder.

History

0.3.1 (2013-8-18)

  • Fix: create develop-eggs directory if missing.

0.3.0 (2011-3-31)

  • Add: locallibs_check option is now available.

0.2.0 (2010-7-12)

  • Add: create dummy ‘.egg-info’ / ‘.egg-link’ for specified packages.

0.1.0 (2010-6-27)

  • first release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buildout.locallib-0.3.1.tar.gz (4.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page