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.

Reply via email to