Issue
You may see following information when trying to run your Django server by ./manage.py runserver
in your virtualenv.
(ELF) webadmin@ip-172-31-30-28:/users/webadmin/Sites/ELF_HomePage$ ./manage.py runserver
Unhandled exception in thread started by <function wrapper at 0x7f0e215a17d0>
Traceback (most recent call last):
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
autoreload.raise_last_exception()
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
six.reraise(*_exception)
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models()
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/contrib/auth/models.py", line 4, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/contrib/auth/base_user.py", line 52, in <module>
class AbstractBaseUser(models.Model):
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/db/models/base.py", line 124, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/db/models/base.py", line 325, in add_to_class
value.contribute_to_class(cls, name)
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/db/models/options.py", line 214, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/db/__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/db/utils.py", line 211, in __getitem__
backend = load_backend(db['ENGINE'])
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/db/utils.py", line 115, in load_backend
return import_module('%s.base' % backend_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/users/webadmin/VirtualEnv/ELF/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 30, in <module>
'Did you install mysqlclient or MySQL-python?' % e
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb.
Did you install mysqlclient or MySQL-python?
Why
The reason of this issue is because you didn’t install MySQL-python for Django to connect to MySQL DB.
Or you didn’t install them in your virtualenv.
Solution
First switch to root when you are using virtualenv.
Then install the following packages by
pip install pymysql
pip install MySQL-python
Finally exit root user and install packages above again in your virtualenv.
Then you will see that your server can be run successfully.