# NEWBIE: One Django Install Per Project ?

**URL:** <https://forum.djangoproject.com/t/newbie-one-django-install-per-project/8730>\
**Category:** Using Django\
**Created:** [July 11, 2021, 6:15am UTC](https://forum.djangoproject.com/t/newbie-one-django-install-per-project/8730 "2021-07-11T06:15:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![cmoher3](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/cmoher3/32/5035_2.png) [@cmoher3](https://forum.djangoproject.com/u/cmoher3)\
**Post date:** [July 11, 2021, 6:15am UTC](https://forum.djangoproject.com/t/newbie-one-django-install-per-project/8730/1 "2021-07-11T06:15:43Z")

</div>

Sorry, I did not get off to a good start with the tutorial as i had installation problems covered in another unresolved post. I’m winging it with a book now by Mattes.

Am I understanding that for each Django project, we create an env AND a Django installation into that env , followed by a startproject .? I’m surprised we can’t just install Django once, if that is the case.

---

<div class="post-metadata">

**Author:** ![Ultra-Instinct-05](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/ultra-instinct-05/32/3267_2.png) [@Ultra-Instinct-05](https://forum.djangoproject.com/u/Ultra-Instinct-05)\
**Post date:** [July 11, 2021, 6:59am UTC](https://forum.djangoproject.com/t/newbie-one-django-install-per-project/8730/2 "2021-07-11T06:59:10Z")

</div>

> [@cmoher3](#):
>
> Am I understanding that for each Django project, we create an env AND a Django installation into that env , followed by a startproject .? I’m surprised we can’t just install Django once, if that is the case.

There’s nothing stopping you from installing Django globally on your system. However, if that’s the case & you have multiple Django projects, all of them would then depend on that version of Django & in many cases, it might happen that one project is just not ready to be upgraded to a newer version of the library & some other needs to be upgraded.

Therefore, it’s always best practice to create a virtual environment (through `virtualenv`, `pipenv`, `poetry` etc. any tool that suits you) for each of your Django projects and install Django there (so that you can full control of the Django version as well as any other dependencies of that project). And this is not just specific to Django, but for any serious Python project in general.

---

<div class="post-metadata">

**Author:** ![KenWhitesell](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/kenwhitesell/32/280_2.png) [@KenWhitesell](https://forum.djangoproject.com/u/KenWhitesell)\
**Post date:** [July 11, 2021, 12:25pm UTC](https://forum.djangoproject.com/t/newbie-one-django-install-per-project/8730/3 "2021-07-11T12:25:56Z")

</div>

> [@Ultra-Instinct-05](#):
>
> Therefore, it’s always best practice to create a virtual environment (through `virtualenv` , `pipenv` , `poetry` etc. any tool that suits you) for each of your Django projects and install Django there (so that you can full control of the Django version as well as any other dependencies of that project). And this is not just specific to Django, but for any serious Python project in general.

I would disagree that it’s **always** best practice to create a per-project virtual environment. If you have a group of related projects (Django and non-Django), where it’s important that the set of those projects all use the same versions of libraries, it’s a lot better to create a virtual environment external to any individual project.
