Django hit solution

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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章