Mac 10.11 MySQLdb-pythonのインストールエラーのまとめ

3923 ワード

前言
===
実は以前これらの穴に出会ったことがあって、n時間を費やして解決した後、本当に心が疲れて、総括したくありません.その时、今はこの环境に合って、これからは二度とこれをしないと思っていました!!
しかし、ガチョウは、私の図面の森が破れて、このすばらしいユートピアの環境は1回のコンピュータで風を引いて、再インストールしてから木があるしかありません!心疲れた~
エラー
===
次は私たちの間違った旅を始めます~
1、mysql_config not found
===
手順に従って、まずここでhttps://sourceforge.net/projects/mysql-python/files/あなたの好きなダウンロードパッケージを見つけます.私がインストールしたのは1.2.3バージョンで、アドレスはMySQL-python-1.2.3です.tar.gz.
ダウンロードが完了したら解凍します.解凍したファイルを/usr/local/ディレクトリにコピーします.鑑定が必要な場合は、鑑定にパソコンのパスワードを入力します.端末cdをディレクトリの下に開きます.
人家ディレクトリの下にあるbashを編集します.profileファイル(もちろん端末で直接実行することもできますが、効果は同じです)
vi ~/.bash_profile

ファイルに次の文を追加します.
export PATH=/usr/local/mysql-5.7.16-osx10.11-x86_64/bin:${PATH}
export DYLD_LIBRARY_PATH=/usr/local/mysql-5.7.16-osx10.11-x86_64/lib/
export VERSIONER_PYTHON_PREFER_64_BIT=yes 
export VERSIONER_PYTHON_PREFER_32_BIT=no

ここで注意しなければならないのは、/usr/local/mysql-5.7.16-osx10.11-x86_64/lib/ディレクトリを自分のmysqlディレクトリに変更する必要がある場合です.
viコマンド編集であればiを押して編集を行い、編集が完了したらescボタンを押して編集モードを終了し、:wqで保存して終了します.
source ~/.bash_profile

次に、コマンドを実行します.
python setup.py build

ヒント
Operation not permitted

sudo権限を使用する必要があります.コマンドの前にsudo(以下のすべてのコマンドは同じです).
sudo python setup.py build

最初の問題が発生します.
mysql_config not found

コピーしたMySQL-pythonディレクトリの下にsetup_を見つけます.posix.pyファイル、開いてから変更:
    mysql_config.path = "mysql_config"

自分の実際のパスに変更する必要があります.例えば私の:
mysql_config.path = "/usr/local/mysql-5.7.16-osx10.11-x86_64/bin/mysql_config"

保存してコマンドを再実行すると、2番目のエラーが発生する可能性があります.
2、間違いが長すぎて、貼らないで、下に行って探します~~
===
2番目のエラー:
Error loading MySQLdb module: dlopen(/Users/showhilllee/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.11-intel.egg-tmp/_mysql.so, 2): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Users/showhilllee/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.11-intel.egg-tmp/_mysql.so
Reason: image not found

エラーのヒントは明らかで、ソフトチェーンを作ればいいです.うん、少なくとも私は最初はそう思っていたが、ガチョウの事実は私がまだ図面であることを証明した.ソフトリンクコマンドを作成するには、次の手順に従います.
sudo ln -s /usr/local/mysql-5.7.16-osx10.11-x86_64/lib/libmysqlclient.20.dylib /usr/lib/libmysqlclient.20.dylib

やはりパスを自分のものに変更することに注意してください.ここでくどくど言う20.dylibの名前の真ん中の数字は、ダウンロードしたバージョン番号によって異なる場合があります.自分の実際のエラーに基づいてコマンドを修正してください.
図面の原因は、El CapitanがRootlessメカニズムを追加し、好きなように多くのパスを読むことができなくなったからです.root権限をタイムリーに設定してもだめです.Operation not permittedのエラーが発生します. :Rootless
最後の防御線ですが、Rootlessを先に消さないと私たちの問題は解決できません.
解決策はコンピュータを再起動し、起動後Command+Rを押して、回復モードに入り、Terminalを開き、閉鎖命令を実行することである.
csrutil disable

再起動すればいいです.Rootlessをデフォルトに戻すには、リカバリモードで次のコマンドを実行します.
csrutil enable

Rootlessをオフにしてからソフト接続の追加コマンドを実行すれば成功します.
3、ImportError: No module named _mysql
===
ここまで书いても何が间违っているのかははっきり覚えていませんが、対応方法は命令を実行した记录と间违いを见て、この心の疲れた过程を思い出すしかありません.の
このエラーもソフト接続を追加して解決します
ln -s /usr/local/mysql-5.7.16-osx10.11-x86_64/bin/mysql /usr/bin

また,リンクディレクトリからも分かるように,このコマンドもRootlessを閉じる必要がある.
4、無責任な結末
===
他の間違いは本当に覚えていません...
上記の手順を実行している間に問題がないかもしれないと感じたら、次のコマンドを実行して本当にできるかどうかを検出してみましょう.もし新聞が間違っていなかったら、成功おめでとうございます.
python -c "import MySQLdb"

問題がない場合は、MySQL-pythonのディレクトリで次のコマンドを実行します.
python setup.py clean
python setup.py build
sudo python setup.py install

最後にうるさい:buildの場合、errorでない限りand上のいくつかのコマンドを無視して、権限が拒否された場合、自分でsudoを追加するwaringがあるかもしれません.
5、このエンディングはいかがですか
===
最後に
==
The End.