Importing Module To Use Variables In A Second Module

Calvin Spealman ironfroggy at gmail.com
Fri Sep 28 09:17:54 EDT 2007


Most problems like this are caused by trying to access the attributes
of the module before that module is fully executed, and thus before
they are defined.

For example, if you have A.py:
  import B
  data = "TEST"

And B.py:
  import A
  print A.data

Now, if you run A,py, it will import B before it defines its global
variable 'data', so that when the B module tries to import A and then
print A.data, it has not been defined yet. Look into the possibility
that such an import loop is occurring in your code. You can import in
loops, but not if you access things defined globally in one from a
global scope in another.

On 27 Sep 2007 21:30:10 GMT, rshepard at nospam.appl-ecosys.com
<rshepard at nospam.appl-ecosys.com> wrote:
>   I'm stymied by what should be a simple Python task: accessing the value of
> a variable assigned in one module from within a second module. I wonder if
> someone here can help clarify my thinking. I've re-read Chapter 16 (Module
> Basics) in Lutz and Ascher's "Learning Python" but it's not working for me.
>
>   In one module (the "source"), variablePage.py, three wxPython widgets
> display values that are assigned to variables: curVar, UoDlow, and UoDhigh.
> I want to display then in equivalent widgets on a wxPython notebook tab in a
> different module, the "importer."
>
>   At the top of the importer module I have:
>
> from variablePage import curVar, UoDlow, UoDhigh
>
> and I try to display the values of those variables in widgets on this page.
> But, python complains:
>
>     from variablePage import curVar, UoDlow, UoDhigh
> ImportError: cannot import name curVar
>
>   I've also tried
>
> import variablePage as VP
>
>   and referenced the variables as VP.curVar, VP.UoDlow, and VP.UoDhigh, but
> python still doesn't like this:
>
>   File "/data1/eikos/fuzSetPage.py", line 364, in loadParVar
>     first = VP.curVar
> AttributeError: 'module' object has no attribute 'curVar'
>
>   Both of these forms are used in the book (pages 260-261) in simple
> examples. I also get errors if I try importing using the class name before
> the variable name.
>
>   A clue stick would be very helpful since I am not seeing just what I'm
> doing incorrectly.
>
> Rich
> --
> http://mail.python.org/mailman/listinfo/python-list
>


-- 
Read my blog! I depend on your acceptance of my opinion! I am interesting!
http://ironfroggy-code.blogspot.com/



More information about the Python-list mailing list