doted filenames in import statements

Terry Reedy tjreedy at
Wed Jul 22 12:44:08 EDT 2009

Jean-Michel Pichavant wrote:
> Piet van Oostrum wrote:
>> [snip]
>>> JP> file = "/home/dsp/"
>>> JP> test = __import__(file)
>>> JP> => no module name blalalal found.
>>> JP> Any suggestion ? I tried multiple escape technics without any 
>>> success.
>> Rightly so.
>> I think the best would be to add the directory to sys.path 
>> sys.path.add('/home/dsp/')
>> and then
>> __import__('test', ... )   
> I see. My problem is that a have to import 2 different files having de 
> same name. In the same name space I have 2 objects from 2 different 
> software branches, let's say 4.6.0 and 4.6.1.
> The first object shall import 4.6.0/ and the second one 4.6.1/
> If I add 4.6.1 to sys.path, the import statement will look like:
> self._orb = __import__('orb')
> The problem is, python wil assume orb is already imported and will 
> assign the module from the 4.6.0 branch to my 4.6.1 object.
> Do I have to mess up with sys.modules keys to make python import the 
> correct file ? Is there a standard/proper way to do that ?

If you make the directory names into proper identifiers like v460 and 
v461 and add to each to make them packages and have both on 
search path, then

import v460.orb #or import v460.orb as orb460
import v461.orb #or import v460.orb as orb461

will get you both. One way or another, they have to get different names 
within Python.

Terry Jan Reedy

More information about the Python-list mailing list