1. ホーム
  2. python

"Cannot open include file: 'config-win.h' を開けません。mysql-pythonのインストール中に「No such file or directory」と表示されました。

2023-09-24 23:16:26

質問

Windowsでpipを使ってmysql-pythonをvirtualenvにインストールしようとしています。 最初は、私は同じエラーが出ていました ここで報告されている しかし、そこにある答えは私にとっても機能しました。 今、私はこのようなエラーが出ています。

_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory

もし私が(仮想環境ではなく)通常のpythonのsite-packages/MySQLdbのディレクトリにシンボリックリンク(Win7)すると、次のようになります。

Error loading MySQLdb module: No module named _mysql

私はむしろここで途方に暮れています。 何かご指摘はありますか?

どのように解決するのですか?

mysql 5.5へのアップデートとconfig-win.hが表示されない問題

5.5では、config-win.はWindowsのコネクタの別フォルダに移動しています。

C:♪Program Files ♪MySQL ♪Connector C 6.0.2include

この問題を克服するためには、quot;dev bits" をダウンロードするだけでなく(これは実際に コネクタ をダウンロードするだけでなく、インクルード フォルダを追加するために mysqldb インストール スクリプトを変更する必要があります。私はそのような簡単で汚い修正を行っています。

site.cfgを修正しました。

# Windows connector libs for MySQL.
connector = C:\Program Files\MySQL\Connector C 6.0.2

setup_windows.py で、次の行を探します。

include_dirs = [ os.path.join(mysql_root, r'include') ]:

と追加します。

include_dirs = [ os.path.join(options['connector'], r'include') ]

の後に

不細工ですが、mysqldbの作者が動作を変更するまでは動作します。


言及するのを忘れるところでした。同じように、libsにも同様の追加エントリを追加する必要があります。

library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]

つまり、あなたのsetup_windows.pyは、ほとんど次のようになります。

...
library_dirs = [ os.path.join(mysql_root, r'lib\opt') ]
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
libraries = [ 'kernel32', 'advapi32', 'wsock32', client ]
include_dirs = [ os.path.join(mysql_root, r'include') ]
include_dirs = [ os.path.join(options['connector'], r'include') ]
extra_compile_args = [ '/Zl' ]
...