On 6/3/2020 11:48 PM, pytho...@gmail.com wrote:

I am struggling with making modules global for all definitions in my code.

You cannot. You must import every module either directly or indirectly into every module that uses it.

I faced the problem with the pyomo modules but can generate the error with 
pandas too.

The model structure looks as follow:

I have 3 '.py' files each of them containing definitions. The first controls 
inputs and outputs and starts an optimization.py file ( optimization.py). 
Within optimization.py I call a third .py file (model.py) that includes a 
series of definitions, representing mathematical equations of a optimization 
model.



(1) Main.py

The PEP8 standard is all lower case for modules, leaving TitleCase for classes, so, for instance, file/module 'editor' contains the definition of class 'Editor' as its main class.

import pandas as pd

Do you use 'pd' in Main?  If not, delete.

def main_part()
... Result = optimization_def(x,y,z)
...

(2) Optimization.py

To use pd here, import it here.

def optimization(x_l,y_l,z_l)
... O = obejctive(x_l,y_l)
...

(3) Model.py

Ditto.

def objctive(x_a,x_b)
...
def constraint(x_a,z_a)
....


I do not understand why pd is not known in def optimization() as well as in 
objctive().

Because of missing imports.

I tried to make it global by adding global pd in Main.py

Where it is likely irrelevant.


--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to