Getting django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module, while trying to perform the first migration - mysql

I am setting up a Django backend for my application. I am trying to change the default sqlite database to mysql. While performing the first migration, I get the following error:
Traceback (most recent call last): File
"/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/backends/mysql/base.py",
line 15, in
import MySQLdb as Database File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/MySQLdb/init.py",
line 18, in
import _mysql ImportError: dlopen(/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/_mysql.cpython-36m-darwin.so,
2): Library not loaded: #rpath/libmysqlclient.21.dylib Referenced
from:
/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/_mysql.cpython-36m-darwin.so
Reason: image not found
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "manage.py", line 15, in
execute_from_command_line(sys.argv) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/core/management/init.py",
line 381, in execute_from_command_line
utility.execute() File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/core/management/init.py",
line 357, in execute
django.setup() File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/init.py",
line 24, in setup
apps.populate(settings.INSTALLED_APPS) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/apps/registry.py",
line 112, in populate
app_config.import_models() File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/apps/config.py",
line 198, in import_models
self.models_module = import_module(models_module_name) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/importlib/init.py",
line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level) File "", line 994, in _gcd_import File
"", line 971, in _find_and_load File
"", line 955, in _find_and_load_unlocked
File "", line 665, in _load_unlocked
File "", line 678, in
exec_module File "", line 219, in
_call_with_frames_removed File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/contrib/auth/models.py",
line 2, in
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File
"/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/contrib/auth/base_user.py",
line 47, in
class AbstractBaseUser(models.Model): File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/models/base.py",
line 101, in new
new_class.add_to_class('_meta', Options(meta, app_label)) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/models/base.py",
line 305, in add_to_class
value.contribute_to_class(cls, name) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/models/options.py",
line 203, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) File
"/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/init.py",
line 33, in getattr
return getattr(connections[DEFAULT_DB_ALIAS], item) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/utils.py",
line 202, in getitem
backend = load_backend(db['ENGINE']) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/utils.py",
line 110, in load_backend
return import_module('%s.base' % backend_name) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/importlib/init.py",
line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level) File "/Users/user1/djangoApp/djangoProject/env/lib/python3.6/site-packages/django/db/backends/mysql/base.py",
line 20, in
) from err django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
OS:macOS Mojave
Framework: Django
I am using a virtualenv
I have already installed "mysqlclient" using the command
pip3 install mysqlclient
I have verified that the mysqlclient folder exists under the installed location.
I have the mysql server up and running.
I have tried many available solutions online but nothing works
To reproduce:
1 - Start a django project using
"django-admin startproject djangoApp"
2 - Install and start the mysql server.
3 - Update the settings.py file of the entry application to the following
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangoApp',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': ''
}
}
4 - Now try to migrate using
python manage.py migrate
Expected:The migration should be successful
Actual:Migration fails with the given error
I am new to Django

I needed to symlink the lib files to the /usr/local/lib directory.
Fourth answer in the link worked for me
Thank you #Mohit Harshan #Daniel Rosema for taking time out to help me

Related

Django - MySQL intergration Mac M1 Max

I'm relatively new to Django and working on a project. I was about to makemigrations and got the following trace:
demoproject lamidotijjo$ python3 manage.py makemigrations
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/MySQLdb/__init__.py", line 18, in <module>
from . import _mysql
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/MySQLdb/_mysql.cpython-310-darwin.so, 0x0002): Library not loaded: /opt/homebrew/opt/mysql/lib/libmysqlclient.21.dylib
Referenced from: <D6AC4B91-4AA0-31A5-AA10-DE3277524713> /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/MySQLdb/_mysql.cpython-310-darwin.so
Reason: tried: '/opt/homebrew/opt/mysql/lib/libmysqlclient.21.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/mysql/lib/libmysqlclient.21.dylib' (no such file), '/opt/homebrew/opt/mysql/lib/libmysqlclient.21.dylib' (no such file), '/usr/lib/libmysqlclient.21.dylib' (no such file, not in dyld cache)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/lamidotijjo/Python/Django/demoproject/manage.py", line 22, in <module>
main()
File "/Users/lamidotijjo/Python/Django/demoproject/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/core/management/__init__.py", line 420, in execute
django.setup()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/apps/registry.py", line 116, in populate
app_config.import_models()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/apps/config.py", line 269, in import_models
self.models_module = import_module(models_module_name)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/contrib/auth/models.py", line 3, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/contrib/auth/base_user.py", line 49, in <module>
class AbstractBaseUser(models.Model):
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/db/models/base.py", line 141, in __new__
new_class.add_to_class("_meta", Options(meta, app_label))
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/db/models/base.py", line 369, in add_to_class
value.contribute_to_class(cls, name)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/db/models/options.py", line 231, in contribute_to_class
self.db_table, connection.ops.max_name_length()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/utils/connection.py", line 15, in __getattr__
return getattr(self._connections[self._alias], item)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/utils/connection.py", line 62, in __getitem__
conn = self.create_connection(alias)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/db/utils.py", line 193, in create_connection
backend = load_backend(db["ENGINE"])
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/db/utils.py", line 113, in load_backend
return import_module("%s.base" % backend_name)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 15, in <module>
import MySQLdb as Database
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/MySQLdb/__init__.py", line 24, in <module>
version_info, _mysql.version_info, _mysql.__file__
NameError: name '_mysql' is not defined
From what I could gather, from the "NameError: name '_mysql' is not defined error. I had also installed "pip3 install mysqlclient" prior to making migrations. That did not solve the issue.
My settings.py for my db connection is as follows:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
}
}
}
I believe that my parameters are correct.
Installed mysqlclient via pip3
Verfied mysql configuration in settings.py file for django app
Googled Stacktrace posted for missing elements.
I noticed the following, error might be related to the following:
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/MySQLdb/_mysql.cpython-310-darwin.so, 0x0002): Library not loaded: #rpath/libmysqlclient.21.dylib
Referenced from: <1F087C56-18D4-3EC9-8718-BEA0A3ECBAE8> /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/MySQLdb/_mysql.cpython-310-darwin.so
Reason: tried: '/System/Volumes/Preboot/Cryptexes/OS#rpath/libmysqlclient.21.dylib' (no such file), '/usr/lib/libmysqlclient.21.dylib' (no such file, not in dyld cache)
Therefore, tried to create a symlink as root:
ln -s /usr/local/mysql-8.0.31-macos12-arm64/lib/libmysqlclient.21.dylib /usr/lib/libmysqlclient.21.dylib
I was able to fix the issue. The issue stemmed from the fact that Django was looking for the following file: "libmysqlclient.21.dylib" in the wrong location. The relative path found in "_mysql.cpython-310-darwin.so" has been set to the correct absolute path which on my system is found at "/usr/local/mysql-8.0.31-macos12-arm64/lib/libmysqlclient.21.dylib"
Command used was:
install_name_tool -change #rpath/libmysqlclient.21.dylib /usr/local/mysql-8.0.31-macos12-arm64/lib/libmysqlclient.21.dylib _mysql.cpython-310-darwin.so

Getting Error: did you install mysqlclient? even though mysqlclient is installed on MacOS when trying to access the database in django

I am using MacOS 10.13.1 and python version 3.7.2.
I used pip3 install mysqlclient to install mysqlclient and it was successful:
MacBook-Air:~ user$ pip3 install mysqlclient
Collecting mysqlclient
Using cached https://files.pythonhosted.org/packages/f8/9b/5db9a03e2088a87c26e3e4d4c7f7e8f4c2dbae610f9521cdfac15755a795/mysqlclient-1.4.5.tar.gz
Building wheels for collected packages: mysqlclient
Building wheel for mysqlclient (setup.py) ... done
Created wheel for mysqlclient: filename=mysqlclient-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl size=56101 sha256=3c1ab2eed45ecf064e60ceda15f2d85f4b01367e7c7e6ed887f483732b9d5e8c
Stored in directory: /Users/user/Library/Caches/pip/wheels/26/51/0c/3b9ab7013c539c744cddb55989ef494779fa08e8b273ab5ddf
Successfully built mysqlclient
Installing collected packages: mysqlclient
Successfully installed mysqlclient-1.4.5
pip3 list confirms that version 1.4.5 of mysqlclient has been installed.
However, when running python3 manage.py makemigrations in the directory containing my project, this error comes up:
MacBook-Air:averages user$ python3 manage.py shell
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 15, in <module>
import MySQLdb as Database
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/MySQLdb/__init__.py", line 18, in <module>
from . import _mysql
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: #rpath/libmysqlclient.21.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so
Reason: image not found
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 357, in execute
django.setup()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/apps/config.py", line 211, in import_models
self.models_module = import_module(models_module_name)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/contrib/auth/models.py", line 2, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/contrib/auth/base_user.py", line 47, in <module>
class AbstractBaseUser(models.Model):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/models/base.py", line 117, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/models/base.py", line 321, in add_to_class
value.contribute_to_class(cls, name)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/models/options.py", line 204, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/__init__.py", line 28, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/utils.py", line 201, in __getitem__
backend = load_backend(db['ENGINE'])
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/utils.py", line 110, in load_backend
return import_module('%s.base' % backend_name)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 20, in <module>
) from err
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'averages_db',
'USER': 'user',
'PASSWORD': 'password',
}
}
I have looked at other posts with similar problems but I have found nothing of use. Any help would be appreciated.
Check if you are using Python3.7 when executing pip3:
pip3 --version
My output (debian) is:
pip 19.2.3 from /home/username/.local/lib/python3.5/site-packages/pip (python 3.5)
My version of pip3 is using Python3.5.
The solution to install it with python3.7 would be to execute:
python3.7 -m pip install mysqlclient
If that is the case, you might want to use the Python tool virtual environment link.
I had this error myself and for me the problem was that the pip install was placing my files into my /usr/local/mysql/lib folder. When trying to use it with python it is searching for the libraries in /usr/local/lib instead. Just copy pasting the files from my /usr/local/mysql/lib into /usr/local/lib solved the issue for me.
Note Library not loaded: #rpath/libmysqlclient.21.dylib near the start of the error message. I copy pasted that library and then the same error came up but with a different library. Copy pasted again twice more with libssl.1.1.dylib and then libcrypto.1.1.dylib. After putting all three of the mentioned libraries into /usr/local/lib, it worked fine.
You need run this command:
pip install mysqlclient
In your virtual environment. Link

My django can't runserver on mac

Hi all and thanks for taking time to help.
I am a front-end developer and newbie on the Django project.
I am trying to config a project on my Mac.
My colleague helped me to install the virtual environment but it an error still be there when I try to run the server of my project(Hobbit is the name of my project).
(env) ➜ Hobbit git:(feature/sell_system_main) ✗ python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/core/management/base.py", line 280, in execute
translation.activate('en-us')
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 130, in activate
return _trans.activate(language)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 188, in activate
_active.value = translation(language)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 177, in translation
default_translation = _fetch(settings.LANGUAGE_CODE)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 159, in _fetch
app = import_module(appname)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 6, in <module>
from django.contrib.admin.sites import AdminSite, site
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 4, in <module>
from django.contrib.admin.forms import AdminAuthenticationForm
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/contrib/admin/forms.py", line 6, in <module>
from django.contrib.auth.forms import AuthenticationForm
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 17, in <module>
from django.contrib.auth.models import User
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/contrib/auth/models.py", line 48, in <module>
class Permission(models.Model):
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/db/models/base.py", line 96, in __new__
new_class.add_to_class('_meta', Options(meta, **kwargs))
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/db/models/base.py", line 264, in add_to_class
value.contribute_to_class(cls, name)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/db/models/options.py", line 124, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/db/utils.py", line 198, in __getitem__
backend = load_backend(db['ENGINE'])
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/db/utils.py", line 113, in load_backend
return import_module('%s.base' % backend_name)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/Users/liao/workspace/env/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/liao/workspace/env/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: /usr/local/mysql/lib/libmysqlclient.18.dylib
Referenced from: /Users/liao/workspace/env/lib/python2.7/site-packages/_mysql.so
Reason: image not found
So I try to reinstall mysql by pip install mysql-python and result is
Requirement already satisfied (use --upgrade to upgrade): mysql-python in /Users/liao/workspace/env/lib/python2.7/site-packages
It seems that I have installed mysql in virtual environment.
Now I am confused what is the problem. Mysql or Django?

syncdb error on django using mysql

II'm new on django .
I am using ubuntu 13.04
Although i created the databse through phpmyadmin and also entered the credentials in settings.py
but when i typed in the console
python manage.py syncdb
i got this error
Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 453, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py", line 8, in
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/usr/local/lib/python2.7/dist-packages/django/core/management/sql.py", line 9, in
from django.db import models
File "/usr/local/lib/python2.7/dist-packages/django/db/init.py", line 40, in
backend = load_backend(connection.settings_dict['ENGINE'])
File "/usr/local/lib/python2.7/dist-packages/django/db/init.py", line 34, in getattr
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 93, in getitem
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 27, in load_backend
return import_module('.base', backend_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 17, in
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
i have tried giving extensions to db name in settings.py but it didn't work.
Please suggest what to do.
Thanks !
Or you can do:
sudo apt-get install python-mysqldb
Do you have mysql installed in you virtual environment
Try
pip install MySQL-python

ubuntu mysqldb not installed properly

I'm running the following commands and get the following error:
root# sudo python manage.py syncdb
Traceback (most recent call last):
File "manage.py", line 14, in <module>
execute_manager(settings)
File "/usr/lib/pymodules/python2.6/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/lib/pymodules/python2.6/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/pymodules/python2.6/django/core/management/__init__.py", line 261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/usr/lib/pymodules/python2.6/django/core/management/__init__.py", line 67, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/usr/lib/pymodules/python2.6/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/lib/pymodules/python2.6/django/core/management/commands/syncdb.py", line 7, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/usr/lib/pymodules/python2.6/django/core/management/sql.py", line 5, in <module>
from django.contrib.contenttypes import generic
File "/usr/lib/pymodules/python2.6/django/contrib/contenttypes/generic.py", line 6, in <module>
from django.db import connection
File "/usr/lib/pymodules/python2.6/django/db/__init__.py", line 77, in <module>
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/lib/pymodules/python2.6/django/db/utils.py", line 91, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/lib/pymodules/python2.6/django/db/utils.py", line 32, in load_backend
return import_module('.base', backend_name)
File "/usr/lib/pymodules/python2.6/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/lib/pymodules/python2.6/django/db/backends/mysql/base.py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
I have a feeling that mysqldb isn't configured properly with django, I was wondering if i'm missing anything. i ran the following commands right before it:
# apt-get install python-django
# apt-get install python-mysqldb
I had this same issue where my virtualenv was broken and could no longer run django when I upgraded to ubuntu 12.04.
I simply ran (while my ve was active)
pip uninstall MySQL-python
and then re-installed it with
pip install MySQL-python
worked fine again after that.