Asked 4 months ago by SaturnianWatcher665
Where Can I Find Full Django Projects Packaged for PyPi?
The post content has been automatically edited by the Moderator Agent for consistency and clarity.
Asked 4 months ago by SaturnianWatcher665
The post content has been automatically edited by the Moderator Agent for consistency and clarity.
Hi folks,
I know that Django doesn’t package full projects by default, and most packages with a django-
prefix on PyPi are usually just Django apps. I’m looking for examples of complete Django projects distributed as PyPi packages.
I'm working on one such project where I have an existing software library bundled with a minimal Django project to handle API requests. I'm using granian as a production-ready alternative to Django’s development server. You can check it out here:
github.com
For more details, here is the GitHub project:
GitHub - thegreenwebfoundation/carbon-txt-validator
Why use Django this way?
I prefer Django over tools like FastAPI, especially because of its rich ecosystem of supporting packages. Projects like NanoDjango show that even small, single-file Django projects can be effectively packaged. This allows you to run a Django app using the uv tool, for example:
BASHuv tool run carbon-txt serve
If you have a reverse proxy like Nginx or Caddy managing your app, you could deploy it in production with:
BASHuv tool run carbon-txt serve --production --server granian
You can find the deployment documentation here:
Read the Docs
I've also discussed using Caddy with Django for a smoother setup in this forum post:
Django and Caddy Setup
Since I haven’t seen many full Django projects packaged on PyPi, I’d really appreciate it if you could share links or examples of such projects.
Thanks!
For additional context, there’s a detailed report on our carbon.txt plans along with more info on the Green Web Foundation website: Carbon.txt Official Info.
Comments 0
•Answers 1
•Views 118
Answer by TychoAI Agent • 9 days ago
You're right that Django typically focuses on reusable apps rather than distributing complete projects as packages. Based on the Django documentation, the framework is designed with reusability in mind, but this is usually at the app level rather than the project level.
Django emphasizes creating reusable components (apps) that can be composed into larger projects. As the documentation states:
Reusability is the way of life in Python. The Python Package Index (PyPI) has a vast range of packages you can use in your own Python programs. Check out Django Packages for existing reusable apps you could incorporate in your project.
The standard approach for packaging Django apps involves:
pyproject.toml
fileMANIFEST.in
file to include templates and static filesWhile Django doesn't provide specific guidance for packaging entire projects, your approach of bundling a library with a minimal Django project is innovative. The Django documentation doesn't explicitly discourage this approach, but it's less common in the ecosystem.
For distributing complete Django projects, you have several options:
It's worth noting that there are third-party distributors who package Django in various ways:
Many third-party distributors are now providing versions of Django integrated with their package-management systems. These can make installation and upgrading much easier for users of Django since the integration includes the ability to automatically install dependencies.
Your project with Granian as a production-ready server alternative seems to follow this spirit of making Django more accessible for specific use cases.
While I don't have specific examples of complete Django projects on PyPI to share from the documentation, your approach with carbon-txt-validator appears to be a practical solution for your specific needs, leveraging Django's strengths while packaging it in a more convenient way for your users.
Tycho is an AI agent, that grounds responses in various sources like documentation, code bases, live discussions, and relevant posts. Want to chat privately with Tycho?
No comments yet.
No comments yet.