web-dev-qa-db-ja.com

mysql-pythonのインストール中に「インクルードファイルを開けません: 'config-win.h':No such file or directory」

Windowsでpipを使用して、virtualenvにmysql-pythonをインストールしようとしています。最初は、同じエラーが表示されていました ここで報告 ですが、そこでの答えも私にとってはうまくいきました。今、私はこの次のエラーを受け取っています:

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

(virtualenvではなく)通常のpythonのsite-packages/MySQLdbディレクトリにシンボリックリンク(Win7)すると

Error loading MySQLdb module: No module named _mysql

ここではかなり迷っています。ポインタはありますか?

71
saturdayplace

Mysql 5.5およびconfig-win.hのアップデートに関する目に見えない問題

5.5 config-winで。実際には、Windowsの別のコネクタに移動しました。つまり:

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

この問題を克服するには、「devビット」(実際にはconnectorに接続する)をダウンロードするだけでなく、mysqldbインストールスクリプトを変更してincludeフォルダーを追加する必要があります。私はそれとして簡単な汚い修正をしました。

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') ]

その後。

Glyいですが、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' ]
...
18
Bugagotti

私がしなければならなかったのは、Oracleに移動して、MySQL Connector C 6.0.2をダウンロードするだけです(新しいものは動作しません!)、典型的なインストール。

https://downloads.mysql.com/archives/c-c/

カスタムインストール経由ですべてのオプションのエクストラ(エクストラバイナリ)を含めるようにしてください。これらがないと、win64.msiでは機能しませんでした。

それが完了したら、pycharmsに進み、インストールするMySQL-python> = 1.2.4パッケージを選択しました。構成などを更新する必要はありません。これは私にとって最も簡単なバージョンでした。

それが役に立てば幸い

89
Kevin Mansel

受け入れられたソリューションは、mysql-pythonの新しいバージョンでは機能しなくなったようです。インストーラーは、編集する_site.cfg_ファイルを提供しなくなりました。

Mysql-pythonをインストールする場合は、C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\includeを探します。 MySQLの64ビットインストールがある場合、次を呼び出すことができます。

  1. mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"
  2. _pip install mysql-python_を実行します
  3. 手順1で作成したシンボリックリンクを削除します
25
Gili

受け入れられた回答は古くなっています。提案のいくつかはすでにパッケージに組み込まれていましたが、config-win.hとmysqlclient.libが見つからないというエラーが引き続き発生していました。

  • インストール mysql-connector-c-6.0.2-win32.msi

    司会者用のZipファイルもありますが、mysqlclient.liblibディレクトリにありますが、インストーラーはlib/opt。 site.cfgまたはsetup_windows.pyをハッキングする代わりに、msiはジョブを実行します。

  • pip install mysql-python

追伸私はもうMySQLを使用していないので、私の答えも古くなっているかもしれません。

15
user

私はこの投稿が非常に古いことを知っていますが、それはまだグーグルのトップヒットとして登場しているので、この問題にさらに情報を追加します。

私はOPと同じ問題を抱えていましたが、提案された答えのどれも私にとってはうまくいかないようでした。主に、「config-win.h」がコネクタインストールフォルダのどこにも存在しなかったためです。

MySQLインストーラーから提案された最新のConnector C 6.1.6を使用していました。

ただし、これは最新のMySQL-pythonパッケージ(1.2.5)ではサポートされていないようです。インストールしようとすると、C Connector 6.0.2を明示的に探していることがわかりました。

"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"

このバージョンを https://dev.mysql.com/downloads/file/?id=378015 からインストールすることにより、pythonパッケージは問題なくインストールされました。

11
jimmy

おそらく答えは、MySQL Developer Buildをインストールし、構成中に「C headers\libs」オプションを選択することです。 (このエントリで報告されているとおり:Python)

さらに良い解決策は、プリコンパイル済みビルドをインストールすることです: http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

7
chodorowicz

Pipが「MySQLdb」のインストールに失敗した場合、回避策はまずこのリンクからダウンロードしてマシンにインストールすることです。

http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

次に、すべてのMySQL *および_mysql *ファイルとディレクトリをシステムからPython Virtualenv dirにコピーします。

c:\Python27\Lib\site-packages(またはシステムPythonへの同様のパス)からc:\my_virtenv\Lib\site-packages(virtualenvへのパス)

5
Dmitriy
4
Ethan

MySQLdbでも頭痛の種がたくさんありました。

公式のMysQL Python Connectorを使用しないのはなぜですか?

easy_install mysql-connector-python

または、ここからダウンロードできます: http://dev.mysql.com/downloads/connector/python/

ドキュメント: http://dev.mysql.com/doc/refman/5.5/en/connector-python.html

4

最も簡単な解決策:

下のリンクからMySQL Connector C 6.0.2をダウンロードしてインストールします。

http://dev.mysql.com/downloads/connector/c/6.0.html#downloads

MySQL Connector C 6.0.2をインストールした後、フォルダー「MySQL Connector C 6.0.2」を「C:\ Program Files\MySQL」から「C:\ Program Files(x86)\ MySQL」にコピーします。

次に入力

pip install MySQL-python

それは間違いなく動作します。

3
Gil Baggio

Mysqlの開発ビットをインストールすると、config-win.h私が持っていたエラー、別のものを投げた。 Failed to load and parse the manifest. The system cannot find the file specified.この投稿で私の問題に対する答えを見つけました: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/

ファイル 'C:\ Python26\Lib\distutils\msvc9compiler.py`をvirtualenvにコピーし、上記のリンクで提案された編集を行ったところ、問題なく動作しています。

3
saturdayplace

私の場合、私の修正は、c:\ Program Files\MySQL\MySQL Connectorにあるmysql-connector-c-6.0.2-win32.msi(前の投稿のユーザー名バッファーから参照)から作成されたフォルダーをコピーすることでした。 C 6.0.2で、プログラムファイル(x86)を使用して新しいパスを作成し、そこにコンテンツを貼り付けます。これは、32ビットと64ビットのマシン間でインストールが適切にチェックされないためです。

したがって、新しいパスはC:\ Program Files(x86)\ MySQL\MySQL Connector C 6.0.2です。これはインストーラーが探しているパスなので、インストーラーがファイルを見つけるのに役立つようにファイルを貼り付けました。これにより、config-win.hが見つからないというエラーが発生していました。

2
Ryan

Windowsで機能したソリューション:32- bitおよび64-ビットバージョンの MySQL Connector/C 6.0.2 。開いた Command Promptおよび実行:

pip install mysql-python
1
raul

試す ActivePython

pypm -E C:\myvirtualenv install mysql-python
1

Mingcai SHENの方法に従いました。

しかし、私の場合は、コネクタを

connector = C:\Program Files\MySQL\MySQL Connector.C 6.1

また、library_dirsは次のように変更されます。

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

vs9ディレクトリがないためです。動作しますが、理由はわかりません

Vs2012がインストールされており、コネクタのlibディレクトリにはvs10vs11のみがあり、vs11は機能しません。インストールしたVCForPyhton27.misはvs9をサポートしているようです。

とにかく、これは動作します。そして、あなたがそれを危険にさらしたいなら、あなたは試すことができます。

1
zijuexiansheng
_building '_mysql' extension
creating build\temp.win-AMD64-2.7
creating build\temp.win-AMD64-2.7\Release
C:\Users\TimHuang\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\AMD64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" -Ic:\python27\include -Ic:\python27\PC /Tc_mysql.c /Fobuild\temp.win-AMD64-2.7\Release\_mysql.obj /Zl
_mysql.c
_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
_

_pip install mysql-python_を試すときにこれが表示される場合、最も簡単な方法はコピーすることです

_C:\Program Files\MySQL\MySQL Connector C 6.0.2_からC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2

シンボリックリンクを作成しようとしましたが、WindowsはC:\WINDOWS\system32>mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include" The system cannot find the path specified.を投げ続けます

1
timbuntu2

Bugagottiからの回答に従いましたが、mysql-python-1.2.5のWindows(Win7 64ビット、py27、mysqlコネクタ6.1がインストールされている)では機能しないため、mysql-python- 1.2.5:

まず、site.cfg:

connector = C:\Program Files\MySQL\MySQL Connector C 6.1

第二に、_mysql.c:

#if defined(MS_WINDOWS)
#include <config-win.h>
#else
#include "my_config.h"
#endif

に:

#if 0 /*defined(MS_WINDOWS)*/
#include <config-win.h>
#else
#include "my_config.h"
#endif

そして、これらの変更により、config_win.hの問題はなくなりますが、リンクの問題はまだあります。

LINK : fatal error LNK1181: cannot open input file 'mysqlclient.lib'

このため、setup_windows.pyを変更しました。

library_dirs = [ os.path.join(connector, r'lib\vs9') ]  ## the original value was r'lib\opt'

その後、ようやく機能しました。

1
Mingcai SHEN

私にとって、次のアプローチは問題を解決しました(Python 3.5.2; mysqlclient 1.3.9):

  1. 最新のMySQL Cコネクタのダウンロード http://dev.mysql.com/downloads/connector/c/ (私にとってはWindows(x86、64ビット)、MSIインストーラー)
  2. _c:\Program Files\MySQL\MySQL Connector C 6.0.2\_ディレクトリをc:\Program Files (x86)\MySQL\MySQL Connector C 6.1\にコピーします
  3. _pip install mysqlclient_を実行します
  4. [オプション] c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\を削除

ここでの問題は、ビルドスクリプトがx86プログラムファイルディレクトリ内のCコネクタインクルードを見つけようとしているため、x64ビットインストール所有者のみを対象としています。

1
Dagaz

https://dev.mysql.com/downloads/connector/c/6.0.htmlからコネクタのバージョンをダウンロードします。私の場合、64ビットのコネクタをインストールし、pythonは32ビットでした。したがって、プログラムファイルからプログラムファイルにMySQLをコピーする必要がありました。 86)

0
ishwar rimal

Window10の手順:

  • https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-pythonに移動します
  • pythonバージョンとハードウェアの仕様に従って適切なバージョンをダウンロードします。私の場合、mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whlはpython3.7およびIntel CPUで動作します。
  • Envがまだアクティブになっている間に、ダウンロードフォルダーに移動してpip install mysqlclient-1.4.2-cp37-cp37m-win32.whlを実行します
0
David P
  1. こちらからダウンロード

  2. 次に、このwhlをpipインストーラーでインストールします。ダウンロードしたフォルダーでShiftキーを押しながら右クリックし、Open powershell hereを選択します。次に、コマンドpip install package_name.whlを使用してインストールします

0
Jacky Pham

Visual Studioを使用しているかどうかにかかわらず、仮想環境でこれを行う場合は、easy_install MySQL-python

0
Saher Ahwal