Error Loading MySQLdb Module and “pip install MySQLdb”

匿名 (未验证) 提交于 2019-12-03 08:57:35

问题:

I'm trying start up a Django project.

I get this error on trying to run the manage.py:

(venv)dyn-160-39-161-214:proj Bren$ python manage.py Traceback (most recent call last):   File "manage.py", line 10, in <module>     execute_from_command_line(sys.argv)   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line     utility.execute()   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 328, in execute     django.setup()   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/__init__.py", line 18, in setup     apps.populate(settings.INSTALLED_APPS)   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate     app_config.import_models(all_models)   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models     self.models_module = import_module(models_module_name)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module     __import__(name)   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/contrib/auth/models.py", line 41, in <module>     class Permission(models.Model):   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/db/models/base.py", line 139, in __new__     new_class.add_to_class('_meta', Options(meta, **kwargs))   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/db/models/base.py", line 324, in add_to_class     value.contribute_to_class(cls, name)   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/db/models/options.py", line 250, in contribute_to_class     self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/db/__init__.py", line 36, in __getattr__     return getattr(connections[DEFAULT_DB_ALIAS], item)   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/db/utils.py", line 241, in __getitem__     backend = load_backend(db['ENGINE'])   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/db/utils.py", line 112, in load_backend     return import_module('%s.base' % backend_name)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module     __import__(name)   File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 27, in <module>     raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb 

I was wondering what module I should try to install.

When I use pip install MySQLdb I get this error:

    Collecting MySQLdb   Could not find a version that satisfies the requirement MySQLdb (from versions: ) No matching distribution found for MySQLdb 

When I look this up on SO and other places it seems there are lots of different mysql modules out there.

Also this is what my setup looks like for the DB (I didnt write this porject and am largely new to django and python):

    DATABASES = {     'default': {         'ENGINE': 'django.db.backends.mysql', 

...

    } } 

EdBaker suggested pip install MySQL-python

I got this as a response:

Collecting MySQL-python   Using cached MySQL-python-1.2.5.zip     Complete output from command python setup.py egg_info:     sh: mysql_config: command not found     Traceback (most recent call last):       File "<string>", line 20, in <module>       File "/private/var/folders/m3/11zknyw55zxbw6zqh58rwq580000gn/T/pip-build-DC9tSL/MySQL-python/setup.py", line 17, in <module>         metadata, options = get_config()       File "setup_posix.py", line 43, in get_config         libs = mysql_config("libs_r")       File "setup_posix.py", line 25, in mysql_config         raise EnvironmentError("%s not found" % (mysql_config.path,))     EnvironmentError: mysql_config not found      ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/m3/11zknyw55zxbw6zqh58rwq580000gn/T/pip-build-DC9tSL/MySQL-python 

Attempting to run import MySQLdb in the shell:

[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import MySQLdb Traceback (most recent call last):   File "<stdin>", line 1, in <module> ImportError: No module named MySQLdb 

Attempting to upgrade pip:

pip install pip --upgrade 

showed pip was up to date

Requirement already up-to-date: pip in /Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages 

回答1:

Clearly installing pip install MySQL-python is the way to go. The problem is with the location of mysql_config. Look around here, this might help you depending on your OS: mysql_config not found when installing mysqldb python interface



回答2:

I followed my question here 404 error when using brew to install mysql

and then as fodma1 suggested went to here stackoverflow.com/a/33928783/2419215

and now it works for the most part (have another error but thats for another post)!

Thanks EdBaker and fodma1!



回答3:

breq install mysql

Path will be shown after installation is complete, use that in below command :

sudo PATH=/usr/local/Cellar/mysql/bin/:$PATH pip install mysql-python



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!