I have a Django project that uses an external package that I haven't installed via pip in my virtualenv, rather I got it via git clone, and now I am wondering where to put it, and how the name of the folder should be. The external package is this: Evernote Python3 SDK
This is my current Django project structure:
➜ (venv:evernote) evernote_bear_project git:(master) tree
.
├── README.md
├── bear2evernote
│ ├── static
│ └── templates
├── config
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── libs
│ ├── evernote-sdk-python3
│ (omitted)
│ └── utils
│ ├── __init__.py
│ └── file_utils.py
└── manage.py
I have put this package evernote-sdk-python3 in a folder called libs in my Django project folder. I also put utility functions in a package called utils beneath libs
Now I know that there are many suggestions out there on how to structure your projects like these two:
[1] Structuring Your Project — The Hitchhiker's Guide to Python
[2] Python Application Layouts: A Reference – Real Python
And I also know that Python does not force you to use a dogmatic folder structure. But nontheless: I don't have a solid understanding of packaging, package naming and package structuring.
Is it good practice to put an external package underneath my (Django)project root folder?
Does it make sense to put all my packages / libraries, that are not related to my specific Django apps, in one single folder named
libsorutilsorsrc?
Edit: I also do not see a clear best practice on how to use these folder names:
srclibutils