私はPythonの初心者ですが、MySQLdbを適切に機能させる方法を検討するのに1日を費やしました。Googleによるユニバースには、PITAとは何かに関する多数の参照と、非常に多くのガイドが含まれているようです時代遅れ。このサイトはこれらの種類の問題に対処することを目的としており、将来的にソリューションへの参照が必要になることを知っているので、質問をし、私の答えを提供し、他に何が浮かんでいるかを確認します表面。
では問題は、MySQLdbをMac OS Xで動作させる方法ですか?
私はPythonの初心者ですが、MySQLdbを適切に機能させる方法を検討するのに1日を費やしました。Googleによるユニバースには、PITAとは何かに関する多数の参照と、非常に多くのガイドが含まれているようです時代遅れ。このサイトはこれらの種類の問題に対処することを目的としており、将来的にソリューションへの参照が必要になることを知っているので、質問をし、私の答えを提供し、他に何が浮かんでいるかを確認します表面。
では問題は、MySQLdbをMac OS Xで動作させる方法ですか?
回答:
python3を使用して、これらの更新:
あなたは簡単に使用することができconda install mysqlclient
、それが現在存在しているとしてのMySQLdbを使用するために必要なライブラリをインストールします。次のSOの質問は役立つヒントでした:Python 3 ImportError: 'ConfigParser'という名前のモジュールはありません。mysqlclientをインストールすると、mysqlclient、mysql-connector、llvmdevがインストールされます(少なくとも、これらの3つのライブラリは私のマシンにインストールされています)。
これが、この問題に関する私のとりとめのない経験の物語です。あなたが問題のより良い経験を持っているなら、それを編集したり一般化したりしたいと思います...そのSO魔法のビットを適用します。
注:次の段落のコメントはSnow Leopardに適用されましたが、Lionには適用されません。64ビットMySQLを必要とするようです。
まず第一に、著者(まだ?)のMySQLdbのは言うここでは、最も悪質な問題の一つは、OS Xは、Pythonの32ビットバージョンでインストールされていますということですが、そのほとんどの平均ジョーズ(私自身を含め)は、おそらく64ビット版をインストールするジャンプMySQLの。悪い動き... 64ビットバージョンをインストールしている場合は削除し(この手間のかかるタスクの説明はSOでここにあります)、32ビットバージョンをダウンロードしてインストールします(ここでパッケージ)
MySQLdbライブラリをビルドおよびインストールする方法については、段階的な手順が多数あります。彼らはしばしば微妙な違いを持っています。 これは私にとって最も人気があるようで、実用的なソリューションを提供しました。以下のいくつかの編集でそれを再現しました
ステップ0: 始める前に、MySQL、Python、GCCがMacにインストールされていることを前提としています。
ステップ1: SourceForgeから 最新のMySQL for Pythonアダプターをダウンロードします。
ステップ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で卵を削除します
ステップ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
次のシンボリックリンクを1つ追加作成する必要があります。
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
その後import MySQLdb
、エラーなしでできるはずです。
ただし、最後の1つの問題は、ビルドディレクトリからPythonを起動すると、次のエラーが発生することです。
/ライブラリ/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3:UserWarning:モジュール_mysqlはすでに/ライブラリ/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にとって非常に簡単ですが、トラブルを回避するために、ここで(または多分...特に将来性のあるURLではないかもしれませんが)cd ..
ビルドし、ビルドディレクトリから外す必要があり、エラーがなくなるはずです。
冒頭に書いたように、この恐ろしい問題については他にも数多くの具体的な経験があるので、この回答が一般化されるのを見てみたいです。編集するか、独自のより良い答えを提供してください。
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
。これを実行すると、期待どおりにインポートされました...最終的に。ふhewww。似たような立場にある人たちのための単なるfyi。
Mac OS X 10.8(Mountain Lion)、10.9(Mavericks)、10.10(Yosemite)、および10.11(El Capitan)のすばやく簡単な方法:
XCode、そのコマンドラインツール、Python、MySQLがインストールされていると思います。
PIPをインストールします。
sudo easy_install pip
〜/ .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
MySQLdbをインストールする
sudo pip install MySQL-python
すべてが正常に機能するかどうかをテストするには、
python -c "import MySQLdb"
それは私にとって魅力のように働きました。お役に立てば幸いです。
見つからないライブラリーに関するエラーが発生した場合:ライブラリーがロードされていません:libmysqlclient.18.dylibその後、次のようにシンボリックリンクする必要があります/usr/lib
:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
下からコマンドを実行する必要がありました。
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/
brew install mysql
、2番目の手順を実行する必要はありませんでした。
Macports経由でmysqlとpythonをインストールするポーターはすべての困難な作業を行いました。
sudo port install py26-mysql
sudo port install mysql5-server
必要なものをインストールする必要があります。(mysqlサーバーに関するコメントについては、スタックオーバーフローを参照してください)
mysqlに接続するだけでサーバーを実行する必要がない場合は、最初の行で十分です。
Macportsは現在(2013年初頭)、OSと実行可能なアーキテクチャの一般的な組み合わせのバイナリダウンロードを提供し、他の人(およびリクエストした場合)はソースからビルドします。
インストールする必要のある複雑なライブラリなどがある場合、一般にmacports(またはfink)が役立ちます。
Pythonのみのコードで、単純なCの依存関係をsetuptoolsなどで設定できる場合は、2つを組み合わせると複雑になります。
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
コンパイルに問題がある場合は、ここの回答の1つにあるように〜/ .profileファイルを編集してみてください。
pip install mysqlclient
代わりに。動作します!
手順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
MacにMySQL-pythonをインストールするで述べたように:
pip uninstall MySQL-python
brew install mysql
pip install MySQL-python
それをテストします:
python -c "import MySQLdb"
新しいライオンボックスを入手した後、この問題(再び!)
私が見つけた最良の解決策(まだ100%最適ではありませんが、機能しています):
64ビットのPythonを使用していることを確認してください。 ライブラリが32ビット/ 64ビットのMac OS Xでビルドされているかどうかを確認する方法
easy_installがない場合はインストールします。 http://packages.python.org/distribute/easy_install.html
GCCがない場合はインストールします。
あなたがすることができ、アップルからのXCode /開発ツールをダウンロードしてそれを得る-これは大きなダウンロードは-
...しかし、代わりに私はあなたが必要とするものを持っている(そして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/
パスを次のように設定します。
エクスポートPATH = $ PATH:/ usr / local / mysql-XXXX
エクスポートDYLD_LIBRARY_PATH = / usr / local / mysql / lib /
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などの検索でさまざまなエラーを要求し続けました。
エクスポートDYLD_LIBRARY_PATH = / usr / local / mysql / lib /
@ richard-boardman、ソフトリンクソリューションに気づきました。これは、実際に私のPATHソリューションと同じことをしている可能性があります...
最良のリファレンス:http : //activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/
あなたはpure-pythonを使ってみることができますpymysql
:
sudo easy_install pymysql
(またはpip
、インストールしている場合は使用します。)次に、import MySQLdb
コードの前にこれを追加します。
try:
import pymysql
pymysql.install_as_MySQLdb()
except ImportError:
pass
または単純な試み:
> sudo easy_install MySQL-python
以下のようなエラーが発生した場合:
EnvironmentError:mysql_configが見つかりません
、次にこれを実行します
> export PATH=$PATH:/usr/local/mysql/bin
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)] darwinタイプ "help"、 "copyright"、 "credits"または "license"詳細情報。Anacondaは、Continuum Analyticsによって提供されます。チェックアウトしてください:http : //continuum.io/thanksおよびhttps://anaconda.org
>>> sqlalchemyインポートから*
>>> dbengine = create_engine( 'mysql:// ....')
この答えは、2019年11月頃のアップデートです。人気のあるpipインストールのいずれも、MacOS 10.13(および他のバージョンも同様)で動作する設定を提供しません。これは私が物事を働かせた簡単な方法です:
brew install mysql
pip install mysqlclient
brewのインストールについてヘルプが必要な場合は、次のサイトを参照してください:https : //brew.sh/
私はこの問題に遭遇し、mysqlclient
opensslの場所を知る必要があることがわかりました。OSXはデフォルトでこれを隠しています。
opensslをbrew info openssl
で見つけて、openssl
binへのパスをPATHに追加します。
export PATH="/usr/local/opt/openssl/bin:$PATH"
これを.zshrcまたは.bashrcに追加して、今後心配する必要がないようにすることをお勧めします。次に、その変数をエクスポートして(bashセッションを閉じて再び開く可能性があります)、さらに2つの環境変数を追加します。
# in terminal
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
次に、最後に実行します。
pipenv install mysqlclient
そしてそれはうまくインストールする必要があります。
ソース:https : //medium.com/@shandou/pipenv-install-mysqlclient-on-macosx-7c253b0112f2