web-dev-qa-db-ja.com

pip install mysqlclientは「致命的なエラーC1083:ファイルを開けません: 'mysql.h':そのようなファイルまたはディレクトリはありません

ここにこの問題があります:mysqlclientをインストールしようとします

C:\ Users\amccommon349> pip install mysqlclientキャッシュを使用したmysqlclientの収集 https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1 cb31f128e6dbba70c5975c9e57896815dbb1988ad/mysqlclient-1.3.13.tar.g

収集されたパッケージのインストール:mysqlclient

Mysqlclientのsetup.pyインストールの実行...エラー

Complete output from command c:\users\amccommon349\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\AMCCOM~1\\AppData\\Local\\Temp\\pip-install-qcgo48hf\\mysqlclient\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\AMCCOM~1\AppData\Local\Temp\pip-record-q4yoftj8\install-record.txt --single-version-externally-managed --compile:

c:\ users\amccommon349\appdata\local\programs\python\python36\lib\distutils\d ist.py:261:UserWarning:不明な配布オプション: 'long_description_content_ type'

  warnings.warn(msg)
running install
running build
running build_py
creating build
creating build\lib.win-AMD64-3.6
copying _mysql_exceptions.py -> build\lib.win-AMD64-3.6
creating build\lib.win-AMD64-3.6\MySQLdb
copying MySQLdb\__init__.py -> build\lib.win-AMD64-3.6\MySQLdb
copying MySQLdb\compat.py -> build\lib.win-AMD64-3.6\MySQLdb
copying MySQLdb\connections.py -> build\lib.win-AMD64-3.6\MySQLdb
copying MySQLdb\converters.py -> build\lib.win-AMD64-3.6\MySQLdb
copying MySQLdb\cursors.py -> build\lib.win-AMD64-3.6\MySQLdb
copying MySQLdb\release.py -> build\lib.win-AMD64-3.6\MySQLdb
copying MySQLdb\times.py -> build\lib.win-AMD64-3.6\MySQLdb
creating build\lib.win-AMD64-3.6\MySQLdb\constants
copying MySQLdb\constants\__init__.py -> build\lib.win-AMD64-3.6\MySQLdb\constants
copying MySQLdb\constants\CLIENT.py -> build\lib.win-AMD64-3.6\MySQLdb\constants
copying MySQLdb\constants\CR.py -> build\lib.win-AMD64-3.6\MySQLdb\constants

copying MySQLdb\constants\ER.py -> build\lib.win-AMD64-3.6\MySQLdb\constants

copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-AMD64-3.6\MySQLdb\constants
copying MySQLdb\constants\FLAG.py -> build\lib.win-AMD64-3.6\MySQLdb\constants
copying MySQLdb\constants\REFRESH.py -> build\lib.win-AMD64-3.6\MySQLdb\constants

build_extの実行

building '_mysql' extension
creating build\temp.win-AMD64-3.6
creating build\temp.win-AMD64-3.6\Release
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe /c/nologo/Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(1,3,13,'final',0) -D__version__=1.3.13 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" -Ic:\users\amccommon349\appdata\local\programs\python\python36\include -Ic:\users\amccommon349\appdata\local\programs\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\ProgramFiles (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tc_mysql.c /Fobuild\temp.win-AMD64-3.6\Release\_mysql.obj /Zl
_mysql.c
_mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

Visual Studioのビルドツールに必要なファイルがすべて揃っていることを確認し、mysql-pythonコネクターをダウンロードし、pipおよびセットアップツールを更新しました。私はこれの完全な初心者であり、このエラーを修正する方法についてのご意見をいただければ幸いです。

23
Aaron McCommon

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient を使用して、pythonバージョンの非公式のWindowsバイナリをダウンロードできます。次に、pipを使用してインストールします。この方法により、ビジュアルスタジオビルドツールを扱う手間を回避できます。

最適なmysqlclient.whlファイルをダウンロードするだけです。あなたの場合はそうなると思います

mysqlclient‑1.3.13‑cp36‑cp36m‑win_AMD64.whl

そして走る

pip install "path to the downloaded .whl file"
32
Nipun Sampath

このエラーは、64ビット環境でpython32のmysqlclientをインストールしようとすると発生します。 pythonをアンインストールし、64ビットバージョンを再インストールします。次に、pip install mysqlclientがエラーなしで実行されます。

これは、Windows 10のpythonの64ビットバージョンの問題です。次の手順で問題を修正しました。

  1. Windows用のpythonの32ビットバージョンをインストールします(現在バージョン3.7.1)
  2. Visual Studioビルドツールのインストール https://visualstudio.Microsoft.com/downloads/#build-tools-for-visual-studio-2017 for C++
  3. https://downloads.mysql.com/archives/c-c/ から32ビットmysqlコネクターバージョン6.1.11をインストールします

この後、pip install mysqlclintでmysqlclientをインストールできました。

うまくいけば、誰かが32ビットにダウングレードする必要のないより良い解決策を思いつくでしょう。 mysqlの問題を回避する方法を見つけましたが、チャンネルをインストールしようとしたときに再び問題に遭遇しました。 python 64ビットは、Windowsで64ビットライブラリの代わりに32ビットライブラリを探しているようです。これまでのところ、このソリューションは、Windowsでのpythonビルドの問題をすべて解決しました。

2
Ralph Ritoch

おそらく、これは私が今までに見た中で最も愚かなエラーの1つです。
私はPython 3.7.3 32ビットと最新のpip3を使用していますが、Pythonにホイールをインストールしていました。そして、このSTUPIDエラーにつまずきました。
おそらく私の状況は少し異なりますが、エラーを注意深く見るだけで解決できます....最初は何かが欠けているようで、Windows、32/64bit、そしてリストが非難されます延々と..
戻ってください...ただ戻って厄介な赤いエラーメッセージを読んでください.... 本当によく読んでください
私の場合は

ERROR: Command errored out with exit status 1:
     command: 'c:\users\myUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile
         cwd: C:\Users\MASTER~1\AppData\Local\Temp\pip-install-z7x81g2q\mysqlclient\
    Complete output (30 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.7
    creating build\lib.win32-3.7\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\_exceptions.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\compat.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\release.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\times.py -> build\lib.win32-3.7\MySQLdb
    creating build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\CR.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.7\MySQLdb\constants
    running build_ext
    building 'MySQLdb._mysql' extension
    creating build\temp.win32-3.7
    creating build\temp.win32-3.7\Release
    creating build\temp.win32-3.7\Release\MySQLdb
    C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /TcMySQLdb/_mysql.c /Fobuild\temp.win32-3.7\Release\MySQLdb/_mysql.obj /Zl /D_CRT_SECURE_NO_WARNINGS
    _mysql.c
    MySQLdb/_mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\MyUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.

あなたはそれをよく読みましたか?...私はあなたがすべてを持っていると仮定します...ビルドツール、MySQL Connector C 6.1 ...あなたはそれをProgram Files(x86)に移動しさえしました... ? ...
詳しく見てみましょう

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -

私はあなたがそれを見たことをかなり確信しています...それでも...?

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

mariadb
まあ、これは馬鹿げたことはありません...インストーラーはmariadbを探しますincludes and later libsただmariadbサイトに行き、 MariaDB C/C++コネクターとインストール...
それでは終わりません。C:\ Program Files(x86)\ MySQL\MySQL Connector C 6.1\includeに移動し、フォルダーmariadbを作成し、mariaDbコネクターのインストールから内容をコピーして貼り付けますinclude folder
again行かないで... C:\ Program Files(x86)\ MySQL\MySQL Connector C 6.1\lib libフォルダーに対して同じドリルを再度実行します
だからあなたは

C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb  

C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib\mariadb  

pip3 install mysqlclientを押してください
ナグなしでインストールをお楽しみください...終わり

Successfully installed mysqlclient-1.4.2.post1
2
John

私はこの問題(まったく同じエラー)があり、上記のすべての解決策を試しましたが、どちらも機能しませんでした(少なくとも私にとっては)、実際に私は非常に奇妙な解決策を見つけるまでこの問題を解決しようとしていました、シンプルで愚かな方法!! 。

問題が解決し、人生が再び甘くなるように、私は次の手順を実行しました。

最初にMySQL Connector/Chere からインストールしました

2番目(インストール終了後)をコピーしましたMySQL Connector C 6.1フォルダーfromProgram files/MySQL INTO Program files (x86)/MySQL

Program files (x86)に存在しない場合、MySQLフォルダーを作成する必要がある場合があることに注意してください(私にとっては存在しませんでした)

それと同じくらい簡単に、それは私のために働いた、それはいくつかの(またはすべての)64ビットウィンドウ、pipまたはおそらくmysqlclientセットアップスクリプトはMySQLファイル( 'mysql.h'など)のProgram files (x86)フォルダのみを検索するようです)そして、Program filesを検索せず、Program files (x86)に何も見つからないため、非常に愚かなエラーが発生します!!!そうではありませんか

1
Code_Worm

Djangoプロジェクトでも同じことを試みていました。私は使用してみました:
pip install mysql-python
次のエラーが発生しました:'mysql.h': No such file or directory
reuqirements.txtをいじった後、さらに別のエラーが発生しました

  Downloading https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.Zip (108kB) 
    Complete output from command python setup.py Egg_info: 
    Traceback (most recent call last): 
      File "<string>", line 1, in <module> 
      File "/tmp/pip-install-43_6cfva/MySQL-python/setup.py", line 13, in <module> 
        from setup_posix import get_config 
      File "/tmp/pip-install-43_6cfva/MySQL-python/setup_posix.py", line 2, in <module> 
        from ConfigParser import SafeConfigParser 
    ModuleNotFoundError: No module named 'ConfigParser' 

最終的にこれを使用して私のために働いたpip install mysql-connector
import mysql.connector

0

このエラーを解決するために多くの時間を無駄にした私は、少なくとも私のために働いた解決策を見つけました。

MYSQLクライアントをインストールしようとしたとき

pip install mysqlclient

最初のエラー

MySQLdb/_mysql.c(29):致命的なエラーC1083:インクルードファイルを開けません: 'mysql.h':そのようなファイルまたはディレクトリはありません


また、Djangoチャンネルをインストールしようとしました

pip install -U channels

2番目のエラー

エラー:Microsoft Visual C++ 14.0が必要です。 「Microsoft Visual C++ Build Tools」で入手してください: https://visualstudio.Microsoft.com/downloads/

ビルドツールのダウンロード: Microsoftビルドツール

スタックオーバーフロー: 必要なビルドツールのインストール/選択方法

インストール済みビルドツール。 (ハッピーコーディング)


@ Ralph Ritochソリューションは、Mysql Clientエラーを受け取った私と他の人々のために働きました。

しかし、私はDjangoチャンネルもインストールしたので、以下で説明するこれらの手順に従いました

これらの手順に従ってください

  1. Windows 10 64ビット
  2. Python 64ビット3.7.
  3. mysql-connector-c-6.1.11-winx64
  4. ビルドツール

Django Channels 2.2. もインストールしましたが、エラーは発生しません。

Successfully installed mysqlclient


(注意)

MySQLコネクタはすでにx86ディレクトリにインストールされています

C:\ Program Files\MySQL\MySQL Connector C 6.0.2 \ディレクトリをc:\ Program Files(x86)\ MySQL\MySQL Connector C 6.1 \にコピーします

したがって、MySQL Connectorのディレクトリは変更しませんでした。 (これも確認できます)

たぶんあなたのために働く!

ディレクトリを変更する他のスタックソリューション


考えられる理由

エラーが発生する理由。

  1. Python 32/64ビットバージョン
  2. MySQL Connector 32/64ビットバージョン
  3. ディレクトリの問題
  4. ウィンドウ32/64ビットバージョン
  5. ビルドツールがインストールされていない(Microsoft Visual C++ 14.0を取得する必要がある場合)

ソリューションを投稿してくれたすべての人に感謝します。