I have developed a backend library, say, cool_project
. Now I want to build a web interface for it. So I create a Django project. Of course, I want to name it cool_project
: my mother told me that Hungarian notation is bad and that the name cool_project
is much better than any of cool_project_web
etc.
But now I have a collision. As long as I try importing cool_project
(the backend one) from django/cool_project/views.py
(the views.py
of the main Django app) a frontend package is being imported.
Is there any way to import backend project in this case? I tried to add full path to backend package (sys.path.insert(0, "/home/.../...")
) but it didn't help.
Or maybe there is some well-known naming convention which helps avoiding such collisions?
You can use relative imports like
from .. import cool_project
as long you modules are in a package. I would suggest you to rename your app to something else though. It would create unnecessary complexity