2011-01-20 8 views
5

easy_installを使用してMySQL-Pythonをインストールしようとしています。すぐに失敗します。python easy_install:ディレクトリハウジングの必要なファイルを指定

_mysql.c:36:23: error: my_config.h: No such file or directory
_mysql.c:38:19: error: mysql.h: No such file or directory
_mysql.c:39:26: error: mysqld_error.h: No such file or directory
_mysql.c:40:20: error: errmsg.h: No such file or directory

ヘッダーが見つかりません。私はヘッダーがインストールされている、彼らは/ optのソースからインストールされています。明らかにそこを見ていないのです。どうやって見えるの?例えば、これが設定されていれば、 "--with-mysql =/opt/mysql"のようなことができます。そのようなオプションがeasy_installにあるとは思われません。まだ研究していますので、私が私の答えを見つけたら、ここに投稿します。

答えて

5

これは、easy_install issuよりもコンパイラの検索パスによく似ています。

easy_install呼び出しの前にインクルードパス環境変数を設定すると動作する可能性があります。

C_INCLUDE_PATH=/path/to/your/mysql/include/files easy_install intall MySQL-python 

これで解決しない場合は、INCLUDE_PATHまたはCPLUS_INCLUDE_PATH変数を設定してみてください。どのコンパイラが使用されているかを知るには、easy_installの出力が不十分でした。

+0

なぜeasy_install/pipが私のINCLUDE_PATH env varを尊重しないのだろうか?投稿に感謝します。 –

+0

この解決法は私のためには機能しませんでした。代わりに、私はpkg-config(sudo apt-get install pkg-config)をインストールすることでエラーを回避することができました。 – taranaki

3

easy_installは、インストールしようとしているディストリビューションのsetup.cfgファイルを尊重してsetup.pyを呼び出します。 setup.pyオプション--include_dirs--library_dirsをeasy_installに直接指定することはできませんが、setup.cfgファイルに入れることができます。

私はpysqliteで同様の問題があります。SQLiteを非標準の場所に置き、easy_installを使用してPythonバインディングを取得したかったのです。 pysqliteディストリビューションには、サンプルinclude_dirsおよびlibrary_dirsディレクティブを含むsetup.cfgファイルが含まれているので、何をすべきかが明確でした。

のMySQL-Pythonはのsetup.cfgファイルがある場合は、あなたが含まれるように、それを編集/追加することを試みることができる:、

[build_ext] 
include_dirs = /path/to/headers 
library_dirs = /path/to/libs 

をすでにのsetup.cfgファイル内[build_ext]セクションがある場合、それに追加する代わりに、第2のものを作成する。

関連する問題