簡體   English   中英

加載 MySQLdb 模塊和“pip install MySQLdb”時出錯

[英]Error Loading MySQLdb Module and "pip install MySQLdb"

我正在嘗試啟動一個 Django 項目。

嘗試運行 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

我想知道我應該嘗試安裝什么模塊。

當我使用pip install MySQLdb我得到這個錯誤:

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

當我在 SO 和其他地方查找此內容時,似乎有很多不同的 mysql 模塊。

這也是我的數據庫設置的樣子(我沒有寫這個項目,而且對 django 和 python 很陌生):

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

...

    }
}

EdBaker 建議pip install MySQL-python

我得到了這個作為回應:

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

嘗試在 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

嘗試升級 pip:

pip install pip --upgrade

顯示 pip 是最新的

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

顯然安裝pip install MySQL-python是要走的路。 問題在於 mysql_config 的位置。 環顧四周,這可能會根據您的操作系統對您有所幫助: 安裝 mysqldb python 界面時未找到 mysql_config

編輯:

如果安裝腳本因Command "python setup.py egg_info" failed with error code 1 in {...} ,請安裝 libmysqlclient-dev

sudo apt install libmysqlclient-dev

應該解決這個問題。 感謝@thirupathi-thangavel。

釀造安裝mysql

安裝完成后會顯示路徑,在下面的命令中使用:

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

使用 brew 安裝 mysql 時,我在這里按照我的問題進行了404 錯誤

然后按照fodma1的建議去這里stackoverflow.com/a/33928783/2419215

現在它在大多數情況下都有效(有另一個錯誤,但那是另一篇文章)!

感謝 EdBaker 和 fodma1!

如果上述方法不起作用,請嘗試

mysql客戶端

pip install mysqlclient

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM