web-dev-qa-db-ja.com

Mac OS XにMySQLdb(MySQLへのPythonデータアクセスライブラリ)をインストールする方法

私はPython初心者ですが、MySQLdbを適切に機能させる方法を1日費やしました。Googleによると、宇宙にはPITAとは何か、そして異常な数が含まれています。時代遅れのように見えるガイドの。このサイトはこれらの種類の問題に対処することを目的としており、将来的にソリューションへの参照が必要になることを知っているので、質問をして、答えを提供し、他に何が浮かぶかを見ていきます表面。

質問は、Mac OS Xで MySQLdb を取得する方法ですか?

97
mblackwell8

Python3を使用している場合の更新:conda install mysqlclientを使用するだけで、MySQLdbを現在の状態で使用するために必要なライブラリをインストールできます。次のSOの質問は有用な手がかりでした: Python 3 ImportError: 'ConfigParser'という名前のモジュールはありません 。 mysqlclientをインストールすると、mysqlclient、mysql-connector、およびllvmdevがインストールされます(少なくとも、これら3つのライブラリがマシンにインストールされました)。

ここに、この問題に関する私のとりとめのない経験の物語があります。問題の経験が豊富な場合は、編集または一般化してください... SO魔法を少し適用してください。

注:次の段落のコメントはSnow Leopardに適用されましたが、64ビットMySQLを必要とするLionには適用されません

まず最初に、MySQLdbの作者(まだ?)は ここ と言っています。最も厄介な問題の1つは、OS Xに32ビットバージョンのPythonがインストールされていることですが、 MySQLの64ビットバージョンをインストールするためにジャンプします。悪い動き... 64ビットバージョンをインストールしている場合は削除します(この厄介なタスクの手順はSO here で入手できます)。次に、32ビットバージョンをダウンロードしてインストールします(パッケージ ここ

MySQLdbライブラリを構築してインストールする方法については、段階的な手順が数多くあります。多くの場合、微妙な違いがあります。 これ は私にとって最も人気があるように思われ、実用的なソリューションを提供しました。私は以下のいくつかの編集でそれを再現しました

ステップ0:始める前に、MySQL、Python、および GCC がMacにインストールされていると仮定します。

ステップ1:最新の MySQL for Python adapter をSourceForgeからダウンロードします。

ステップ2:ダウンロードしたパッケージを解凍します:

tar xzvf MySQL-python-1.2.2.tar.gz

ステップ3:フォルダー内でパッケージをクリーニングします。

Sudo python setup.py clean

いくつかの追加手順、( このコメント から)

ステップ3b:MySQL-python-1.2.2/build/*ディレクトリの下のすべてを削除します-「python setup.py clean 「あなたのためにそれをする

ステップ3c:Users/$ USER/.python-eggsの下でEggを削除する

ステップ4:元々_mysql.cの編集が必要でしたが、現在は不要です。 MySQLdbコミュニティはこのバグを修正したようです。

ステップ5:mysqlというサブディレクトリを指すシンボリックリンクをlibの下に作成します。これはコンパイル中に探す場所です。

Sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

ステップ6:setup_posix.pyを編集し、以下を変更します

mysql_config.path = "mysql_config"

mysql_config.path = "/ usr/local/mysql/bin/mysql_config"

ステップ7:同じディレクトリで、パッケージを再構築します(付属の警告は無視してください)

Sudo python setup.py build

ステップ8:パッケージをインストールすると完了です。

Sudo python setup.py install

ステップ9:動作しているかどうかをテストします。 MySQLdbをインポートできれば機能します。

python

>>> import MySQLdb

ステップ10:インポートしようとすると、Library not loaded: libmysqlclient.18.dylibで終わるエラーが表示される場合:Reason: image not foundを作成する必要があります追加のシンボリックリンク:

Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

これで、エラーなしでimport MySQLdbできるようになります。

最後の問題は、ビルドディレクトリからPythonを起動すると、次のエラーが発生することです。

/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.Egg/_mysql.py:3:UserWarning:モジュール_mysqlはすでに/Library/Python/2.5/からインポートされましたsite-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.Egg/_mysql.pyc、ただしXXXX/MySQL-python-1.2.3c1はsys.pathに追加されています

これはGoogleにとって非常に簡単ですが、トラブルを軽減するために here (またはそうでないかもしれません...特に将来性のあるURLではありません)になり、cd ..ビルドディレクトリがなくなると、エラーが消えます。

冒頭で書いたように、この恐ろしい問題には他にも多くの特定の経験があるので、この答えが一般化されるのを楽しみにしています。編集するか、独自のより良い答えを提供します。

131
mblackwell8

Mac OS Xの迅速かつ簡単な方法10.8(Mountain Lion)、10.9(マーベリックス)、10.10(ヨセミテ)、および10.11(エルキャピタン):

XCode、その コマンドラインツール 、Python、MySQLがインストールされていると仮定します。

  1. PIPをインストールします。

    Sudo easy_install pip
    
  2. 〜/ .profileの編集:(Mac OS X 10.10では不要な場合があります)

    nano ~/.profile
    

    次の2行をコピーして貼り付けます

    export PATH=/usr/local/mysql/bin:$PATH
    export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
    

    保存して終了。あとがきで次のコマンドを実行します。

    source  ~/.profile
    
  3. MySQLdbをインストールする

    Sudo pip install MySQL-python
    

    すべてが正常に動作するかどうかをテストするには、試してください

    python -c "import MySQLdb"
    

それは私にとって魅力のように働いた。役に立てば幸いです。

見つからないライブラリに関するエラーが発生した場合:Library not loaded:libmysqlclient.18.dylibその後、次のように/usr/libにシンボリックリンクする必要があります。

Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 
99
F Lekschas

Macports を介してmysqlとpythonをインストールします。ポーターはすべての難しい作業を行いました。

Sudo port install py26-mysql 
Sudo port install mysql5-server

必要なものをインストールする必要があります。 ( mysqlサーバーに関するコメントのスタックオーバーフロー を参照)

Mysqlに接続するだけでサーバーを実行する必要がない場合は、最初の行で十分です。

Macports now(2013年初頭)は、OSの一般的な組み合わせの実行可能アーキテクチャのバイナリダウンロードを提供し、他の(および要求した場合)ソースからビルドします。

一般的に、インストールが必要な複雑なライブラリなどがある場合、macports(またはfink)が役立ちます。

Pythonはコードのみで、setuptoolsなどを介して単純なC依存関係を設定できる場合、2つを混在させると複雑になり始めます。

36
Mark

Pipをインストールします。

Sudo easy_install pip

Brewをインストールします。

Ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Mysqlをインストールします。

brew install mysql

MySQLdbをインストールする

Sudo pip install MySQL-python

コンパイルに問題がある場合は、こちらの回答のいずれかで〜/ .profileファイルを編集してみてください。

15
Ron Reiter

手順9の完了時にエラーを受け取った後、次の手順を実行する必要があります。

ImportError: dlopen(/Users/rick/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.Egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib

    Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

参照:ありがとう! http://ageekstory.blogspot.com/2011_04_01_archive.html

13

MacにMySQL-pythonをインストールする で述べたように:

pip uninstall MySQL-python
brew install mysql
pip install MySQL-python

次にテストします:

python -c "import MySQLdb"
9
Telmo Dias

新しいライオンボックスを入手した後、この問題が再び発生しました。

私が見つけた最良の解決策(まだ100%最適ではありませんが、機能しています):

youcanAppleからXCode/Dev Toolsをダウンロードすることで取得できます-これは大きなダウンロードです-

...しかし、代わりに私はあなたが必要なものを持っている(そしてXCodeを持っていない)このgithubをお勧めします: https://github.com/kennethreitz/osx-gcc-installer

ライオン用に事前構築されたPKGをダウンロードしました https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg

  • mYSQLコミュニティの64ビットバージョンをダウンロードしていることを確認してください。 (DMGのインストールは簡単なルートです) http://dev.mysql.com/downloads/mysql/

  • 次のようにパスを設定します。

    export PATH = $ PATH:/ usr/local/mysql-XXXX

    export DYLD_LIBRARY_PATH =/usr/local/mysql/lib /

    export ARCHFLAGS = '-Arch x86_64'

ご了承ください:

上記のmysql-XXXXの1、XXXはダウンロードした特定のバージョンです。 (おそらく/ usr/local/mysql /もこれの別名であるため動作しますが、設定を知っているふりはしません)

2 ARCHFLAGSを「-Arch i386 -Arch x86_64」に設定することを提案しましたが、x86_64のみを指定する方がうまくいくようです。 (これにはいくつかの理由が考えられますが、それらは厳密には関連していません)。

  • 獣をインストールしてください!

    easy_install MySQL-python

  • 最後のステップ:

DYLD_LIBRARY_PATHを永続的に追加してください!

Bash_profileなどに追加できます。これは私にとって行方不明のステップでした。それなしでは、システムは_mysql.soなどを見つけるためのさまざまなエラーを主張し続けました。

export DYLD_LIBRARY_PATH =/usr/local/mysql/lib /

@ richard-boardman、あなたのソフトリンクソリューションに気づきました。これは、実際に私のPATHソリューションと同じことをしているかもしれません...皆さん、あなたに最適なものは何でも。

ベストリファレンス: http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/

4
jsh

Pure-python pymysqlを使用してみてください:

Sudo easy_install pymysql

(または、インストールされている場合はpipを使用します。)次に、コードのimport MySQLdbの前にこれを追加します。

try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass
3
Collin Anderson

または、単純な試行:

> Sudo easy_install MySQL-python

以下のようなエラーが発生する場合:

EnvironmentError:mysql_configが見つかりません

、それからこれを実行するだけです

> export PATH=$PATH:/usr/local/mysql/bin
3

64ビットMySQLを使用している場合、ARCHFLAGSを使用して、mysql-pythonライブラリの構築中にCPUアーキテクチャを指定すると、トリックが実行されます。

ARCHFLAGS='-Arch x86_64' python setup.py build
ARCHFLAGS='-Arch x86_64' python setup.py install
0
Shan Valleru

Macos Sierraでは、pythonがanacondaによって管理されているため、これは私にとってはうまくいきます。

anaconda search -t conda mysql-python

anaconda show CEFCA/mysql-python

conda install --channel https://conda.anaconda.org/CEFCA mysql-python

SQLAlchemyで使用するもの:

Python 2.7.13 | Continuum Analytics、Inc. | (デフォルト、2016年12月20日、23:05:08)[GCC 4.2.1互換Apple LLVM 6.0(clang-600.0.57)] on darwinタイプ「help」、「copyright」、「credits」または詳細については「ライセンス」。 AnacondaはContinuum Analyticsによって提供されます。チェックしてください: http://continuum.io/thanks および https://anaconda.org

>>> sqlalchemyインポートから*

>>> dbengine = create_engine( 'mysql:// ....')

0
sAguinaga
export PATH=$PATH:/usr/local/mysql/bin/

システムはmysql_configファイルを見つけることができないため、問題を修正する必要があります。

0
Varun Bhatia