OSX 10.6でPythonおよびDjangoを使用してMySQLdbを使用する方法


259

これはOSX 10.6ユーザーにとってよく議論されている問題ですが、機能する解決策を見つけることができませんでした。これが私の設定です:

Python 2.6.1 64ビットDjango 1.2.1 MySQL 5.1.47 osx10.6 64ビット

--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アダプタもインストールしましたが、役に立ちませんでした(おそらく、正しくインストールしなかったのでしょうか?)。

誰かこれまでにこれに対処しましたか?


5
この問題は、MySQL for Pythonアダプターのインストールが不完全/正しくないことが原因でした。:この記事で詳しく説明-具体的には、私が編集を指すようにmysql_configをファイルは/ usr / local / mysqlの/ binに/ mysql_configをへのパスを持っていたdakrauth.com/blog/entry/...
ジョー・

これを行うだけ---------- apt-get install python-mysqldb
shadow0359

pip install mysql私のために働いた!
Ivan Carrasco Quiroz 2017年

回答:


330

私は同じエラーがあり、pip install MySQL-pythonそれを私のために解決しました。

代替インストール:

  • あなたがピップを持っていない場合は、動作するeasy_install MySQL-pythonはずです。
  • あなたのpythonのパッケージングシステムによって管理されている場合は、(例えば、そのシステムを使用する必要がある場合がありますsudo apt-get install ...

以下では、Soliは次のエラーを受け取った場合に注意します。

EnvironmentError: mysql_config not found

...次に、さらにシステム依存関係の問題があります。これを解決する方法はシステムによって異なりますが、Debian派生システムの場合:

sudo apt-get install python-mysqldb


2
ええ、私はSynaptic Package Managerを使用してmysql-pythonを検索してインストールしましたが、うまくいきました。ありがとう。
Tomasz Iniewicz 2011年

6
Fedora 17の下:sudo yum install MySQL-python:)
g19fanatic

20
$ mysql_configプログラム 'mysql_config'は現在インストールされていません。t ypingでインストールできます:sudo apt-get install libmysqlclient-dev
anders

1
この回答をdjangoの公式ドキュメントに追加する必要があります
Siwei Shen申思维

1
私はこのエラー 'pip install MySQL-python'を実行した後、このエラー 'Command python setup.py egg_info failed with error code 1'を持っていると思います
RicardoGonzales

62

Ubuntuを実行して、私はしなければなりませんでした:

sudo apt-get install python-mysqldb

8
彼はUbuntuではなくOS Xを実行しています
Facundo Casco

8
また、virtualenvには入れません
Twirrim

58

他の答えに加えて、以下はmysql-pythonのインストールを完了するのに役立ちました:

virtualenv、mysql-python、pip:誰でもその方法を知っていますか?

Ubuntuでは...

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

適切な権限がない場合は、コマンドの先頭に「sudo」を追加することを忘れないでください。


1
キーはapt-get install python-devです。2年後に開発版のpythonをインストールする理由はわかりませんが、現在のところ、これはpython 2.7.3を使用して動作します。3時間しか無駄になりませんでした。
user798719 2013

23

以下のコマンドを試してください。彼らは私のために働きます:

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

この方法は私の問題を解決しました。前に他のすべての提案でエラーメッセージが表示されますCommand "python setup.py egg_info" failed with error code 1 in /private/var/folders/r8/c_tscq492sn641w5vtvqcvkw0000gp/T/pip-build-JYY1du/MySQL-python
LearnAWK

2
ありがとうございます。上記のすべてを試してください。OSX 10.11で動作する人は誰もいませんでした
Paullo

1
@LearnAWK動作しません。それでもエラーコマンド「python setup.py egg_info」が/ private / var / folders / 3m / 97mbsh5x2bnghhk55130bh_h0000gn / T / pip-build-FFU1vL / MySQL-python /
Stony

19

mysql_configパス上にある必要があります。Macでは、

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

4
私はこれを試しても同じエラーが発生します: 'raise ImproperlyConfigured( "Error loading MySQLdb module:%s"%e)django.core.exceptions.ImproperlyConfigured:Error loading MySQLdb module:No module named MySQLdb'
filistea

14
pip install mysql-python

エラーが発生しました:

EnvironmentError:mysql_configが見つかりません

sudo apt-get install python-mysqldb

問題を修正しました。


11

私がそれをどのように機能させたか:

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にインストールしました、それが必要かどうかわかりません...

それが役に立てば幸い、


8

以下は、Ubuntu 13.10 64ビットを実行している私にとって完璧に機能しました。

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

次に、virtualenv(envフォルダーなど)に移動し、次のコマンドを実行します。

sudo ./bin/pip install mysql-python

私は実際に別の質問で解決策を見つけました、そして私はそれを以下に引用しています:

--no-site-packagesスイッチ(デフォルト)を使用してvirtualenvを作成した場合、MySQLdbなどのシステム全体にインストールされた追加は仮想環境パッケージに含まれません。

virtualenvと共にインストールされたpipコマンドを使用してMySQLdbをインストールする必要があります。bin / activateスクリプトでvirtualenvをアクティブにするか、virtualenv内からbin / pipを使用して、MySQLdbライブラリをローカルにインストールします。

または、-system-site-packageスイッチを使用して、システムサイトパッケージを含む新しいvirtualenvを作成します。

これはOSXでも動作するはずです。唯一の問題は、インストールするための同等のコマンドを取得されるだろうlibmysqlclient-devし、python-devそれらはコンパイルに必要とされているとして、 mysql-python、私は推測します。

お役に立てれば。


2
ありがとう!virtualenvと共にインストールされたpipコマンドを使用してMySQLdbをインストールする必要があります。-ヘルプ
ドブは

ありがとう。sudo ./bin/pip install mysql-pythonとても役に立ちます!
theblackpearl 2014年

8

これを試してください:これで問題が解決しました。

MySQL-pythonのpipインストール


2
ありがとう。これは、django 1.7.1でherokuとcleardb:igniteを使用して問題を解決するのに役立ちました。
Ryan Walton



5

これはRed Hat Enterprise Linux Serverリリース6.4で機能しました

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

CentOSの7、オプション1:yum install MySQL-python; オプション2(virtualenvのを使用している場合): yum install mysql-devel; venv/bin/pip install MySQL-python
hudolejev 2016年

4

次のようにインストールできます pip install mysqlclient


これは私のために並べ替えました。これはPython 3に使用するバージョンだと思います
A Star

3

OSX MavericksとPycharm 3にアップグレードし、このエラーが発生し始めました。pipと簡単なインストールを使用したところ、エラーが発生しました。

コマンド '/ usr / bin / clang'が終了ステータス1で失敗しました。

したがって、Xcode 5に更新して、pipを使用してインストールを再試行する必要があります。

pip install mysql-python

これですべての問題が解決します。


2

ここで発生するエラーは、pythonモジュールのインポートです。これは、OS Xの環境変数$ PYTHONPATHにpython site-packagesフォルダーを追加することで解決できます。したがって、.bash_profileファイルに次のコマンドを追加できます。

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

* xxは、使用しているpythonバージョンに置き換えてください


私はこれを試しました:stackoverflow.com/questions/25459386/… 失敗しました、これで救われました。(Y)
Kamaldeep singh Bhatia

2

python3を使用している場合は、これを試してください(私のOSはUbuntu 16.04です):

sudo apt-get install python3-mysqldb

2

pipWindows 8 64ビットシステムでは動作しませんでした。 easy_install mysql-python私のために働く。を使用するeasy_installと、pipが機能しない場合に、Windowsでバイナリがビルドされないようにすることができます。


1

OSX 10.6.6でも同じ問題が発生しました。しかし、単純なeasy_install mysql-pythononターミナルだけでは解決しませんでした。別の問題が発生したためです。

error: command 'gcc-4.2' failed with exit status 1

どうやら、この問題はXCode3(OSX 10.6にネイティブで出荷されています)からXCode4にアップグレードした後に発生します。この新しいバージョンでは、ppc archのビルドのサポートが削除されています。同じ場合は、前に次のようにしてみてください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に感謝します。ここをチェック


0

私にとっては、mysql-pythonを再インストールするだけで問題が解決しました

pip uninstall mysql-python
pip install mysql-python


0

私はpipMySQL-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$ 


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.