#23433 closed Cleanup/optimization (fixed)
Django installs /usr/bin/django-admin and /usr/bin/django-admin.py
| Reported by: | Arfrever | Owned by: | Jon Dufresne |
|---|---|---|---|
| Component: | Packaging | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | Arfrever.FTA@… | Triage Stage: | Accepted |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Django (since 1.7) installs /usr/bin/django-admin and /usr/bin/django-admin.py.
Both of them execute django.core.management.execute_from_command_line().
/usr/bin/django-admin.py does it directly, while /usr/bin/django-admin does it through pkg_resources module of Setuptools.
/usr/bin/django-admin.py:
#!/usr/bin/python3.4
from django.core import management
if __name__ == "__main__":
management.execute_from_command_line()
/usr/bin/django-admin:
#!/usr/bin/python3.4
# EASY-INSTALL-ENTRY-SCRIPT: 'Django==1.7','console_scripts','django-admin'
__requires__ = 'Django==1.7'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('Django==1.7', 'console_scripts', 'django-admin')()
)
/usr/lib64/python3.4/site-packages/Django-1.7-py3.4.egg-info/entry_points.txt:
[console_scripts] django-admin = django.core.management:execute_from_command_line
Installation of /usr/bin/django-admin.py is caused by scripts=['django/bin/django-admin.py'] in setup.py.
Installation of /usr/bin/django-admin is caused by entry_points={'console_scripts': ['django-admin = django.core.management:execute_from_command_line',]} in setup.py.
I think that it would suffice to install only one of these scripts.
Change History (10)
comment:1 by , 11 years ago
| Triage Stage: | Unreviewed → Someday/Maybe |
|---|---|
| Version: | 1.7 → master |
comment:2 by , 11 years ago
We should wait until support for Django 1.6 ends to remove django-admin.py.
Otherwise, it will become complicated to write version-independent test scripts (think tox.ini).
comment:4 by , 11 years ago
Yes, the fast track would be to deprecate it in Django 1.8 and remove it in Django 2.0.
However, there's almost no downside to keeping it for a few more years, and it will avoid making many tutorials obsolete (for example).
comment:5 by , 6 years ago
| Has patch: | set |
|---|---|
| Owner: | changed from to |
| Patch needs improvement: | set |
| Status: | new → assigned |
| Triage Stage: | Someday/Maybe → Accepted |
comment:6 by , 6 years ago
| Patch needs improvement: | unset |
|---|
We've introduced django-admin because commands don't usually have "language extensions".
We're keeping django-admin.py for backwards-compatibility.
There's little benefit to remove django-admin.py and it would be very disruptive.
Maybe we'll do to at some point, but not soon.