It may be worth trying a relative import, depending on which version of Python you're using. I believe you can do "from .B.models import BModel". Note the '.' full-stop/period before the module. I can't promise that will fix your problem, as the layout isn't entirely clear to me, but it might get you on the right track.
On Wednesday, June 4, 2014 3:51:28 AM UTC-4, Vahe Evoyan wrote: > > I have modules in the project with the same names, all placed in different > applications. > > Particularly there are two apps that conflict and result an ImportError. > The project structure approximately is as follows. > > project > |_ project > |_ settings.py > |_ ... > |_ apps > |_ A > |_ handlers > |_ B.py > |_ C.py > |_ B > |_ models.py > > The settings file adds apps directory to the system path. > > BASE_DIR = os.path.dirname(os.path.dirname(__file__)) > sys.path.insert(0, os.path.join(BASE_DIR, "apps")) > > This configuration assumes that when I import the B.models it will use > apps/B/models.py. Although the following line in the C.py file raise an > import error as it imports the A/handlers/B.pywhich does not have models > module. > > A/handlers/C.py: > from B.models import BModel > > The sys.path variable has a correct items, i.e. the first one in the list > is /path/to/project/appsand sys.modules['B.models'] is referenced to the > correct file. > > BTW, when I use Django's import_by_path function, everything works fine. > > Any ideas how I can solve the problem without renaming the modules? > > Posted sample sources > <https://github.com/vahe-evoyan/django-module-conflict> on GitHub. > > Thanks in advance! > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/0e09ff68-d4a7-4353-afd3-0932205a7823%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

