这是OSX 10.6用户经常讨论的问题,但我还没有找到一个有效的解决方案。下面是我的设置:

Python 2.6.1 64bit Django 1.2.1 " MySQL 5.1.47 osx10.6 64bit

我用——no-site-packages创建了一个virtualenvwrapper,然后安装Django。当我激活virtualenv并运行python manage.py syncdb时,我得到这个错误:

Traceback (most recent call last):
File "manage.py", line 11, in <module>
  execute_manager(settings)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
  utility.execute()
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 257, in fetch_command
  klass = load_command_class(app_name, subcommand)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 67, in load_command_class
  module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/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 "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/sql.py", line 5, in <module>
from django.contrib.contenttypes import generic
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/contrib/contenttypes/generic.py", line 6, in <module>
  from django.db import connection
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/__init__.py", line 75, in <module>
  connection = connections[DEFAULT_DB_ALIAS]
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/utils.py", line 91, in __getitem__
  backend = load_backend(db['ENGINE'])
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/utils.py", line 32, in load_backend
  return import_module('.base', backend_name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/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: No module named MySQLdb

我还安装了MySQL for Python适配器,但没有效果(可能我安装不正确?)

有人之前处理过这个问题吗?


此问题是由于MySQL for Python适配器安装不完整/不正确造成的。具体来说,我必须编辑mysql_config文件的路径,使其指向/usr/local/mysql/bin/mysql_config——本文将更详细地讨论:http://dakrauth.com/blog/entry/python-and-django-setup-mac-os-x-leopard/


我也有同样的错误,pip install MySQL-python为我解决了这个问题。

备选安装:

如果没有pip, easy_install MySQL-python应该可以工作。 如果你的python是由打包系统管理的,你可能不得不使用 该系统(例如sudo apt-get install…)

下面,Soli指出,如果你收到以下错误:

mysql_config未找到

... 然后还有一个进一步的系统依赖问题。解决方法因系统而异,但对于debian衍生系统:

使用apt-get install python-mysqldb


运行Ubuntu,我必须做:

sudo apt-get install python-mysqldb

我在OSX 10.6.6上遇到了同样的问题。但只是在终端上简单的easy_install mysql-python并不能解决这个问题,因为另一个问题随之而来:

错误:命令'gcc-4.2'失败,退出状态为1。

显然,这个问题是在从XCode3 (OSX 10.6自带)升级到XCode4之后出现的。这个更新的版本删除了对建造ppc拱门的支持。如果是同样的情况,请尝试在easy_install mysql-python之前执行以下操作

sudo bash
export ARCHFLAGS='-arch i386 -arch x86_64'
rm -r build
python setup.py build
python setup.py install

非常感谢Ned Deily提供的解决方案。检查在这里


加上其他答案,以下帮助我完成安装mysql-python:

Virtualenv, mysql-python, pip:有人知道怎么做吗?

在Ubuntu上……

apt-get install libmysqlclient-dev
apt-get install python-dev
pip install mysql-python

如果您没有适当的权限,不要忘记在命令的开头添加'sudo'。


pip install mysql-python

引发一个错误:

mysql_config未找到

sudo apt-get install python-mysqldb

修复了问题。


Mysql_config必须在路径上。在Mac上

export PATH=$PATH:/usr/local/mysql/bin/
pip install MySQL-python

我升级到OSX Mavericks和Pycharm 3,开始得到这个错误,我使用pip和easy install,得到这个错误:

命令“/usr/bin/clang”失败,退出状态为1。

所以我需要更新到Xcode 5,并再次尝试使用pip安装。

pip install mysql-python

解决了所有的问题。


运行Ubuntu 13.10 64位时,以下操作对我来说非常有效:

sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev

现在,导航到你的virtualenv(例如env文件夹)并执行以下命令:

sudo ./bin/pip install mysql-python

实际上,我在一个单独的问题中找到了解决方案,下面引用它:

If you have created the virtualenv with the --no-site-packages switch (the default), then system-wide installed additions such as MySQLdb are not included in the virtual environment packages. You need to install MySQLdb with the pip command installed with the virtualenv. Either activate the virtualenv with the bin/activate script, or use bin/pip from within the virtualenv to install the MySQLdb library locally as well. Alternatively, create a new virtualenv with system site-packages included by using the --system-site-package switch.

我认为这也适用于OSX。唯一的问题是获得用于安装libmysqlclient-dev和python-dev的等效命令,因为它们需要编译 我猜是mysql-python。

希望这能有所帮助。


试试这个:这为我解决了问题。

pip安装MySQL-python


这适用于Red Hat Enterprise Linux Server release 6.4

sudo yum install mysql-devel
sudo yum install python-devel
pip install mysql-python

此处引发的错误是在导入python模块时。这可以通过在OS x上将python site-packages文件夹添加到环境变量$PYTHONPATH中来解决。因此我们可以在.bash_profile文件中添加以下命令:

export PYTHONPATH="$PYTHONPATH:/usr/local/lib/pythonx.x/site-packages/"

*将x.x替换为您正在使用的python版本


试试下面的命令。他们为我工作:

brew install mysql-connector-c 
pip install MySQL-python

我在Windows 8 64位系统上无法使用PIP。 Easy_install mysql-python适合我。 如果pip不起作用,可以使用easy_install来避免在windows上构建二进制文件。


Sudo apt-get install python-mysqldb在ubuntu中完美工作

pip install mysql-python会引发一个环境错误


我是如何让它工作的:

virtualenv -p python3.5 env/test

在找到我的环境后:

pip install pymysql
pip install django

然后,我运行startproject,在manage.py中,我添加了这个:

+ try:
+     import pymysql
+     pymysql.install_as_MySQLdb()
+ except:
+     pass

同时,更新了内部设置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'foobar_db',
        'USER': 'foobaruser',
        'PASSWORD': 'foobarpwd',
    }
}

我也有configparser==3.5.0安装在我的virtualenv,不确定这是否是必需的…

希望能有所帮助,


您可以作为pip install mysqlclient安装


对我来说,重新安装mysql-python就解决了这个问题

pip uninstall mysql-python
pip install mysql-python

如果你正在使用python3,那么试试这个(我的操作系统是Ubuntu 16.04):

sudo apt-get install python3-mysqldb

安装命令行工具适用于我:

xcode-select --install

我通过使用pip安装MySQL-python库克服了同样的问题。当我第一次在settings.py中更改数据库设置并执行makemigrations命令时,您可以看到控制台上显示的消息(解决方案如下消息所示,请参阅)。

  (vir_env) admins-MacBook-Pro-3:src admin$ python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/contrib/auth/models.py", line 41, in <module>
    class Permission(models.Model):
  File "/Users/admin/Desktop/SetUp1/vir_env/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/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/models/base.py", line 324, in add_to_class
    value.contribute_to_class(cls, name)
  File "/Users/admin/Desktop/SetUp1/vir_env/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/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/__init__.py", line 36, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/utils.py", line 240, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/admin/Desktop/SetUp1/vir_env/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

最终我克服了这个问题:

(vir_env) admins-MacBook-Pro-3:src admin$ pip install MySQLdb
Collecting MySQLdb
  Could not find a version that satisfies the requirement MySQLdb (from versions: )
No matching distribution found for MySQLdb
(vir_env) admins-MacBook-Pro-3:src admin$ pip install MySQL-python
Collecting MySQL-python
  Downloading MySQL-python-1.2.5.zip (108kB)
    100% |████████████████████████████████| 112kB 364kB/s 
Building wheels for collected packages: MySQL-python
  Running setup.py bdist_wheel for MySQL-python ... done
  Stored in directory: /Users/admin/Library/Caches/pip/wheels/38/a3/89/ec87e092cfb38450fc91a62562055231deb0049a029054dc62
Successfully built MySQL-python
Installing collected packages: MySQL-python
Successfully installed MySQL-python-1.2.5
(vir_env) admins-MacBook-Pro-3:src admin$ python manage.py makemigrations
No changes detected
(vir_env) admins-MacBook-Pro-3:src admin$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, rest_framework, messages, crispy_forms
  Apply all migrations: admin, contenttypes, sessions, auth, PyApp
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying PyApp.0001_initial... OK
  Applying PyApp.0002_auto_20170310_0936... OK
  Applying PyApp.0003_auto_20170310_0953... OK
  Applying PyApp.0004_auto_20170310_0954... OK
  Applying PyApp.0005_auto_20170311_0619... OK
  Applying PyApp.0006_auto_20170311_0622... OK
  Applying PyApp.0007_loraevksensor... OK
  Applying PyApp.0008_auto_20170315_0752... OK
  Applying PyApp.0009_auto_20170315_0753... OK
  Applying PyApp.0010_auto_20170315_0806... OK
  Applying PyApp.0011_auto_20170315_0814... OK
  Applying PyApp.0012_auto_20170315_0820... OK
  Applying PyApp.0013_auto_20170315_0822... OK
  Applying PyApp.0014_auto_20170315_0907... OK
  Applying PyApp.0015_auto_20170315_1041... OK
  Applying PyApp.0016_auto_20170315_1355... OK
  Applying PyApp.0017_auto_20170315_1401... OK
  Applying PyApp.0018_auto_20170331_1348... OK
  Applying PyApp.0019_auto_20170331_1349... OK
  Applying PyApp.0020_auto_20170331_1350... OK
  Applying PyApp.0021_auto_20170331_1458... OK
  Applying PyApp.0022_delete_postoffice... OK
  Applying PyApp.0023_posoffice... OK
  Applying PyApp.0024_auto_20170331_1504... OK
  Applying PyApp.0025_auto_20170331_1511... OK
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying sessions.0001_initial... OK
(vir_env) admins-MacBook-Pro-3:src admin$ 

执行此命令

sudo pip install mysql-python;

现在可以运行命令了。

python manage.py startapp filename;

我在mac osx上使用virtualenv中的python3.7和django 2.1时遇到了类似的情况。 尝试运行命令:

pip install mysql-python
pip install pymysql

在项目文件夹中编辑__init__.py文件,并添加以下内容:

import pymysql

pymysql.install_as_MySQLdb()

然后执行命令:python3 manage.py runserver 或者python manage.py runserver