direct is a special module, because it’s built-in as part of the Panda modules that are already part of the plugin system. So it’s problematic to add a new subdirectory to direct that wasn’t there at the time the plugin system was built.
Try putting ETClevelEditor under a different directory, somewhere besides a directory called ‘direct’.
I wouldn’t add stuff to any standard Panda3D folder; that’s just asking for trouble. Create your old folder and add it to sys.path (or PYTHONPATH), if necessary, or just put it in your application folder.
Remember also that when you create a folder to serve as a Python module it has to contain a file called init.py. That’s just the way Python works.
xml is a standard Python module, isn’t it? It’s normally installed into site-packages, at least. I don’t think you should put this one in your own directory; just let it install itself where it thinks it belongs.
When you package up your p3d file, add -r morepy, which includes the xml package (among others).
I ended up having to do that for ai too, but it ended up working. I’m getting a weird key error now that I haven’t seen before, but I need sleep now and will post more info tomorrow.