import file without .py into another module

Peter Otten __peter__ at web.de
Tue Jan 21 10:40:09 EST 2014


kevinbercaw at gmail.com wrote:

>> > How do I get the value of the config file variable "myVar"??  It seems
>> > it's interpreting the variable name as a string rather than a variable
>> > name.  I don't see any python function stringToVariable.

>> The line:
>> 
>>      configModuleObject = imp.load_source(fileName, filePath)

>> imports the module and then binds it to the name configModuleObject,
>> 
>> therefore:
>> 
>>      print configModuleObject.myVar
> 
> Yep, I tried that right off as that's how I thought it would work, but it
> doesn't work. Traceback (most recent call last):
>   File "mainScript.py", line 31, in <module>
>     print configModuleObject.myVar
> AttributeError: 'module' object has no attribute 'myVar'

Try again with

module = imp.load_source("made_up_name", "a15800")
print module.myVar

If the file "a15800" is not in the current working directory, give the 
complete path, e. g:

module = imp.load_source("made_up_name", "/path/to/a15800")
print module.myVar

The first arg serves as the module's name which is used for caching to speed 
up repeated imports:

>>> import imp
>>> import sys
>>> "made_up_name" in sys.modules
False
>>> module = imp.load_source("made_up_name", "a15800")
>>> module.myVar
'hello'
>>> "made_up_name" in sys.modules
True
>>> module
<module 'made_up_name' from 'a15800c'>





More information about the Python-list mailing list