Python 加载 MySQLdb 模块和“pip install MySQLdb”时出错

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/34030215/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 14:22:34  来源:igfitidea点击:

Error Loading MySQLdb Module and "pip install MySQLdb"

pythonmysqldjangopackagespython-module

提问by Bren

I'm trying start up a Django project.

我正在尝试启动一个 Django 项目。

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

尝试运行 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 MySQLdbI get this error:

当我使用时,pip install MySQLdb我收到此错误:

    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.

当我在 SO 和其他地方查找时,似乎有很多不同的 mysql 模块。

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

这也是我的数据库设置的样子(我没有写这个项目,我对 django 和 python 很陌生):

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

...

...

    }
}

EdBaker suggested pip install MySQL-python

埃德贝克建议 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:

尝试在 shell 中运行 import MySQLdb:

[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:

pip install pip --upgrade

showed pip was up to date

显示 pip 是最新的

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

采纳答案by fodma1

Clearly installing pip install MySQL-pythonis 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

显然安装pip install MySQL-python是要走的路。问题在于 mysql_config 的位置。环顾四周,这可能会根据您的操作系统对您有所帮助:安装 mysqldb python 界面时未找到 mysql_config

Edit:

编辑:

In case the install script fails with Command "python setup.py egg_info" failed with error code 1 in {...}, installing libmysqlclient-dev with

如果安装脚本失败Command "python setup.py egg_info" failed with error code 1 in {...},请安装 libmysqlclient-dev

sudo apt install libmysqlclient-dev

should fix the issue. Thanks to @thirupathi-thangavel.

应该解决这个问题。感谢@thirupathi-thangavel。

回答by Bren

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

使用 brew 安装 mysql 时,我在这里按照我的问题进行了404 错误

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

然后按照fodma1的建议去这里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!

感谢 EdBaker 和 fodma1!

回答by user3763076

brew install mysql

酿造安装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

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