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