diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2010-04-01 15:20:25 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2010-04-01 15:33:07 +0200 |
commit | 84891b048d577e52da91c64d310f7bafa115d015 (patch) | |
tree | 959c0794c00b484553ac876e21ee55cc3fa27d7c /source4/scripting | |
parent | 64c564291d9ce60d934273aaac15150386d22127 (diff) | |
download | samba-84891b048d577e52da91c64d310f7bafa115d015.tar.gz samba-84891b048d577e52da91c64d310f7bafa115d015.tar.bz2 samba-84891b048d577e52da91c64d310f7bafa115d015.zip |
s4-python: Install external packages to a different directory but import into
the normal namespace when the system doesn't have it available.
Diffstat (limited to 'source4/scripting')
-rwxr-xr-x | source4/scripting/bin/samba_dnsupdate | 2 | ||||
-rw-r--r-- | source4/scripting/python/samba/__init__.py | 13 |
2 files changed, 10 insertions, 5 deletions
diff --git a/source4/scripting/bin/samba_dnsupdate b/source4/scripting/bin/samba_dnsupdate index 8a7b8a4e34..b3956aa2c4 100755 --- a/source4/scripting/bin/samba_dnsupdate +++ b/source4/scripting/bin/samba_dnsupdate @@ -38,7 +38,7 @@ from samba import glue from samba.auth import system_session from samba.samdb import SamDB -samba.ensure_external_module("dns.resolver", "dnspython") +samba.ensure_external_module("dns", "dnspython") import dns.resolver as resolver default_ttl = 900 diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py index 87753b5a1d..50ecde2829 100644 --- a/source4/scripting/python/samba/__init__.py +++ b/source4/scripting/python/samba/__init__.py @@ -402,10 +402,15 @@ def ensure_external_module(modulename, location): try: __import__(modulename) except ImportError: - sys.path.insert(0, - os.path.join(os.path.dirname(__file__), - "../../../../lib", location)) - __import__(modulename) + import sys + if _in_source_tree(): + sys.path.insert(0, + os.path.join(os.path.dirname(__file__), + "../../../../lib", location)) + __import__(modulename) + else: + sys.modules[modulename] = __import__( + "samba.external.%s" % modulename, fromlist=["samba.external"]) version = glue.version |