I have the following structure
my_scripts
group_A
group_A1
main.py
dbFunctions.py
group_A2
main.py
dbFunctions.py
group_B
scripting_Im_running_things_from.py
dbFunctions.py
I want to load one function from each of the main.py
s, and am trying to do it with sys.path.append
. But because the folder I am running my main script from (group_B) has dbFunctions.py
as well, none of the other two models' functions (ie. group_A1\main.py
and group_A2\main.py
) can utilise functions from their respective dbFunctions.py
modules so I am getting an import error:
ImportError: cannot import name 'my_function_in_groupA1_dbFunctions' from 'dbFunctions' (C:\my_scripts\group_B\dbFunctions.py)
(I also tried renaming
group_B\dbFunctions.py
togroup_B\_dbFunctions.py
and adding thegroup_A1
andgroup_A2
to sys.path does allow me to import functions from whichever ofgroup_A1
's andgroup_A2
'smain.py
I choose to import from first, but then for the second one it is impossible to make it look at the second folder; because it has loaded one function from a givenmain.py
, seemingly no othermain.py
> can be considered.)
Is it preferebale to add init.py
s in all folders or can this be done by using importlib
?
Apologies for not creating a re-producible example, I cannot do it I believe for this question.