Absolute imports in Python 2.4

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Wed Jun 3 20:21:32 EDT 2009


On Tue, 02 Jun 2009 02:37:04 -0300, Gabriel Genellina wrote:

> En Mon, 01 Jun 2009 21:40:26 -0300, Steven D'Aprano
> <steve at remove-this-cybersource.com.au> escribió:
> 
>> I have a package which includes a module which shadows a module in the
>> standard library. For example:
>>
>> package
>> +-- __init__.py
>> +-- ham.py
>> +-- spam.py
>> +-- sys.py
>>
>> Inside that package, I want to import the standard library sys. In
>> other words, I want an absolute import. [...] What can I do in Python
>> 2.4 to get an absolute import?
> 
> sys = __import__("sys", {})
> 
> The import statement uses the global namespace to determine which
> package it is called on; if you pass an empty namespace, it cannot infer
> package information.

Oh that's very cunning! Nice trick.


> Anyway, the best move would be to rename the offending module...

I agree. But it's nice to know the work-around if I need it.



-- 
Steven



More information about the Python-list mailing list