Python importing nightmare

I'm having the hardest time trying to import a few things. I have an addon that has multiple files all under one folder with an __init__.py in the base. I'm performing all of these imports from this __init__.py. The addon folder resides in my addon folder as scripts/addons/RLD_Toolkit

My directory hierarchy looks like this

The part of the script where it errors

def register():
#These imports do not work
from . import rld_panel
import rld_panel

#This import does work
import RLD_Toolkit.rld_panel


The error I'm getting is

Import Error: cannot import name rld_panel


Why won't it perform the relative imports (or even the straight up import) from my __init__.py?

Edit: Here's a printout of my globals() variables and sys.path

• My guess: Blender screws up the pythonpath. Print it and see if it makes sense. – Mörkö Sep 5 '15 at 6:08
• @user277143 Updated post with printout of globals and sys.path – Coburn Sep 5 '15 at 6:13
• As you can see, the folder you are in isn't in the import path. As addons is in the python path, saying import RLD_Toolkit.rld_panel imports from the module (that is the whole folder with your init.py) the file rld_panel.py. I would advise you to add the current folder into the path. – Mörkö Sep 5 '15 at 6:15
• I'm confused? You're talking about __path__ right? That's the folder with all my stuff in it. – Coburn Sep 5 '15 at 6:16
• Nope. path is the path of the file. When you try to import things, python looks in sys.path, which doesn't contain the folder. – Mörkö Sep 5 '15 at 6:18

sys.path.append(__path__)


before importing anything. This will add the current folder into the path Python looks in for imports. Then you can import files with:

import foo


from bar import foo