7

エラーが表示されますが、Python、より具体的にはFlaskでMySQLモジュールをインポートしようとしています。アプリケーションで仮想環境を使用しています。エラーは次のとおりです。

    Traceback (most recent call last):
  File "../myapp/application.py", line 9, in <module>
    from flask.ext.mysql import MySQL
  File "/Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/flask/exthook.py", line 81, in load_module
    reraise(exc_type, exc_value, tb.tb_next)
  File "/Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/flaskext/mysql.py", line 3, in <module>
    import MySQLdb
  File "/Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: /Library/Python/2.7/site-packages/_mysql.so
  Referenced from: /Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/_mysql.so
  Reason: image not found

私はそれが言うエラーで見ることができますLibrary not loaded: /Library/Python/2.7/site-packages/_mysql.so。仮想環境を使用しているため、パスが正しくありません。である必要があります/lib/python2.7/site-packages/_mysql.so

これを変更する方法はありますか?ありがとう。

編集:

ライブラリの場所を変更するための端末コマンドが OSX にあることがわかりました。

 sudo install_name_tool -change libmysqlclient.18.dylib /lib/python2.7/site-packages/MySQLdb/

Enterキーを押すと、次のようになります。

Usage: /Library/Developer/CommandLineTools/usr/bin/install_name_tool [-change old new] ... [-rpath old new] ... [-add_rpath new] ... [-delete_rpath old] ... [-id name] input

コマンドを間違って入力しているようには見えませんが、何が問題なのですか?

4

1 に答える 1

2

原則として、ペストのようにシステムの python インストールを避けるようにしてください。はい、それに基づいて virtualenv を作成することもできます。理解するのが難しい問題があまりにも頻繁に発生します。

Homebrewを入手してから、ヘッダー用に python と mysql をインストールすることをお勧めします。

brew install python
brew install mysql

次に、brew の python に基づいて virtualenv を作成します。

virtualenv venv --python /usr/local/bin/python

ジャンプするのはもう少し手間がかかりますが、開発プロセスがはるかに簡単になります. 言うまでもなくbrew、それ自体が開発者にとって大きな助けとなります。

動作するかどうかを確認したところ、動作する MySQLdb を取得するのに 2 分かかりました。

于 2015-08-01T13:36:20.673 に答える