Search code examples
pythonnameerror

NameError: name 'sim_functions' is not defined


cli.py calls upon method() in gri.py.

gri.py needs to call upon consolidate() in sim_functions.py.


cli.py:

from sim_functions import *
from gri import *

method()

gri.py:

#from sim_functions import *
from sim_functions import consolidate

def method():
    programmatic_dict = sim_functions.consolidate()  # Fails

sim_functions.py:

import multiprocessing.dummy as mp
import multiprocessing

def consolidate_programmatic(multiple):
    ...

    return programmatic_dict

Traceback:

Traceback (most recent call last):
  File "cli.py", line 178, in <module>
    cli()
  File "/home/me/.cache/pypoetry/virtualenvs/data-simulator-vZW8uMY6-py3.8/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/home/me/.cache/pypoetry/virtualenvs/data-simulator-vZW8uMY6-py3.8/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/home/me/.cache/pypoetry/virtualenvs/data-simulator-vZW8uMY6-py3.8/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/me/.cache/pypoetry/virtualenvs/data-simulator-vZW8uMY6-py3.8/lib/python3.8/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "cli.py", line 43, in cli
    main_gri()
  File "/home/me/.cache/pypoetry/virtualenvs/data-simulator-vZW8uMY6-py3.8/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/home/me/.cache/pypoetry/virtualenvs/data-simulator-vZW8uMY6-py3.8/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/home/me/.cache/pypoetry/virtualenvs/data-simulator-vZW8uMY6-py3.8/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/me/.cache/pypoetry/virtualenvs/data-simulator-vZW8uMY6-py3.8/lib/python3.8/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "cli.py", line 159, in main_gri
    gri_dict = consolidate(multiple_per_tag, emissions, effluents_waste, non_discrimination, customer_health_safety, esg)
  File "/mnt/c/Users/me/Documents/GitHub/workers-python/workers/data_simulator/src/gri.py", line 26, in consolidate
    programmatic_dict = sim_functions.consolidate_programmatic(multiple_per_tag)
NameError: name 'sim_functions' is not defined

Please let me know if there is anything else I can add to post to help further clarify.


Solution

  • I did an opsie.

    You only need to call upon the <name>.function() if it belongs to an OOP Class.

    In my case, no functions belong to any classes, so just function() suffices.