18đź‘Ť
I’ve found the answer to my question.
- If you’ve got an error in your settings, manage.py will swallow the exception and report as if the command does not exist.
- This lead me down the path of incorrectly assuming my python path or venv environment was messed up.
If you want to diagnose this issue, run…
python app/manage.py help
… and it will show the exception. This, of course, was what was recommended by the django shell after it had told me that the command was not found.
This is clearly a bug in Django 1.4. It seems to me, an Exception should be reported regardless of what management command you run.
1đź‘Ť
Looking through the manager.py
code and django.core.management
I can come up with some suggestions.
First, check if the file <some_path>/django/core/management/commands/runserver.py
exists.
Second, run:
>>> import sys
>>> sys.path
If the aforementioned <some_path>
is not in this list than you must set the PYTHONPATH
variable.
Third, (and that’s the longest of all shots) if you have changed the DEFAULT_PORT
of runserver
, try changing it back to 8000
.
- Django, apache, mod_wsgi – Error: Premature end of script headers
- Why does Django admin list_select_related not work in this case?
- Using Django's collectstatic with boto S3 throws "Error 32: Broken Pipe" after a while
- Query for enum value in GraphQL
0đź‘Ť
I agreed with OP. I met the same problem, and it turned out to be an error in settings.py
:
In settings.py I use os.environ[something]
and those environment variables are loaded in apache start script. If I run manage.py
from the command line, it doesn’t know what is os.environ[something]
thus error occurs.
So for anyone here searching for solution, suggestion is to check circumstance difference between running django project and pure manage.py, maybe you’ll find what’s wrong.
0đź‘Ť
I will add my answer to the same problem I had. This was unrelated from Django version, but in an old instance of my project I was providing my own Django copy and not installing from pip. Later I decided to use Pip installed Django.
When I pulled the changes on the server, my repo’s copy of Django files were deleted but not the .pyc files. manage.py
would still import the old .pyc files making the imports break half way and the error was the same “Unknown command: runserver”.
Naturally, fully deleting the folder with the .pyc files fixed the problem.
- Unexpected error: replace() takes 2 positional arguments but 3 were given
- Iterating over a Django QuerySet while deleting objects in the same QuerySet
- Adding link to django admin page
- Suppress factory_boy captured logging information?
- A Django URLField has fixed max_length as 200 characters