에러 노트(1) - mysqlclient 설치 에러

3 minute read

새로운 프로젝트를 연습하려고 셋팅을 하던 도중 MYSQL 이용을 위해 mysqlclient를 설치하던 도중 갑작스럽게 에러가 떴다. 지금까지 잘되다가 갑자기 왜 안되는건가 싶었는데 찾아보니 아마 pip를 업데이트 해서 그런 것 같다. (이래서 함부로 뭐 업데이트 하면 안된다…)

오류 코드가 다음과 같이 굉장히 굉장히 길었는데, 이 많은 오류를 다 살펴볼 시간은 없고 바로 구글링을 했다.

ERROR: Command errored out with exit status 1:
   command: 'd:\webdev\realtime\venv\scripts\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; 
sys.argv[0] = '"'"'C:\\Users\\kgw74\\AppData\\Local\\Temp\\pip-install-np_fx9n4\\mysqlclient_bb62b1ce67604c8c91ec6897e528e919\\setup.py'"'"'; __file__='"'"'C:\\Users\\kgw74\\AppData\\Local\\Temp\\pip-install-np_fx9n4\\mysqlclient_bb62b1ce67604c8c91ec6897e528e919\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\kgw74\AppData\Local\Temp\pip-wheel-2c_1zbzm'
       cwd: C:\Users\kgw74\AppData\Local\Temp\pip-install-np_fx9n4\mysqlclient_bb62b1ce67604c8c91ec6897e528e919\
  Complete output (29 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win32-3.8
  creating build\lib.win32-3.8\MySQLdb
  copying MySQLdb\__init__.py -> build\lib.win32-3.8\MySQLdb
  copying MySQLdb\_exceptions.py -> build\lib.win32-3.8\MySQLdb
  copying MySQLdb\connections.py -> build\lib.win32-3.8\MySQLdb
  copying MySQLdb\converters.py -> build\lib.win32-3.8\MySQLdb
  copying MySQLdb\cursors.py -> build\lib.win32-3.8\MySQLdb
  copying MySQLdb\release.py -> build\lib.win32-3.8\MySQLdb
  copying MySQLdb\times.py -> build\lib.win32-3.8\MySQLdb
  creating build\lib.win32-3.8\MySQLdb\constants
  copying MySQLdb\constants\__init__.py -> build\lib.win32-3.8\MySQLdb\constants
  copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.8\MySQLdb\constants
  copying MySQLdb\constants\CR.py -> build\lib.win32-3.8\MySQLdb\constants
  copying MySQLdb\constants\ER.py -> build\lib.win32-3.8\MySQLdb\constants
  copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.8\MySQLdb\constants
  copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.8\MySQLdb\constants
  running build_ext
  building 'MySQLdb._mysql' extension
  creating build\temp.win32-3.8
  creating build\temp.win32-3.8\Release
  creating build\temp.win32-3.8\Release\MySQLdb
  C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(2,0,3,'final',0) -D__version__=2.0.3 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -Id:\webdev\realtime\venv\include -Ic:\users\kgw74\appdata\local\programs\python\python38-32\include -Ic:\users\kgw74\appdata\local\programs\python\python38-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /TcMySQLdb/_mysql.c /Fobuild\temp.win32-3.8\Release\MySQLdb/_mysql.obj
  _mysql.c
  MySQLdb/_mysql.c(29): fatal error C1083: 포함 파일을 열 수 없습니다. 'mysql.h': No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
  ----------------------------------------
  ERROR: Failed building wheel for mysqlclient
  Running setup.py clean for mysqlclient
Failed to build mysqlclient
Installing collected packages: mysqlclient
    Running setup.py install for mysqlclient ... error
    ERROR: Command errored out with exit status 1:
     command: 'd:\webdev\realtime\venv\scripts\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\kgw74\\AppData\\Local\\Temp\\pip-install-np_fx9n4\\mysqlclient_bb62b1ce67604c8c91ec6897e528e919\\setup.py'"'"'; __file__='"'"'C:\\Users\\kgw74\\AppData\\Local\\Temp\\pip-install-np_fx9n4\\mysqlclient_bb62b1ce67604c8c91ec6897e528e919\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', 
open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\kgw74\AppData\Local\Temp\pip-record-9k8ubecp\install-record.txt' --single-version-externally-managed --compile --install-headers 'd:\webdev\realtime\venv\include\site\python3.8\mysqlclient'
         cwd: C:\Users\kgw74\AppData\Local\Temp\pip-install-np_fx9n4\mysqlclient_bb62b1ce67604c8c91ec6897e528e919\
    Complete output (29 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.8
    creating build\lib.win32-3.8\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\_exceptions.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\release.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\times.py -> build\lib.win32-3.8\MySQLdb
    creating build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\CR.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.8\MySQLdb\constants
    running build_ext
    building 'MySQLdb._mysql' extension
    creating build\temp.win32-3.8
    creating build\temp.win32-3.8\Release
    creating build\temp.win32-3.8\Release\MySQLdb
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(2,0,3,'final',0) -D__version__=2.0.3 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -Id:\webdev\realtime\venv\include -Ic:\users\kgw74\appdata\local\programs\python\python38-32\include -Ic:\users\kgw74\appdata\local\programs\python\python38-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /TcMySQLdb/_mysql.c /Fobuild\temp.win32-3.8\Release\MySQLdb/_mysql.obj
    _mysql.c
    MySQLdb/_mysql.c(29): fatal error C1083: 포함 파일을 열 수 없습니다. 'mysql.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'd:\webdev\realtime\venv\scripts\python.exe' -u -c 'import 
io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\kgw74\\AppData\\Local\\Temp\\pip-install-np_fx9n4\\mysqlclient_bb62b1ce67604c8c91ec6897e528e919\\setup.py'"'"'; __file__='"'"'C:\\Users\\kgw74\\AppData\\Local\\Temp\\pip-install-np_fx9n4\\mysqlclient_bb62b1ce67604c8c91ec6897e528e919\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\kgw74\AppData\Local\Temp\pip-record-9k8ubecp\install-record.txt' --single-version-externally-managed --compile --install-headers 'd:\webdev\realtime\venv\include\site\python3.8\mysqlclient' Check the logs for full command output.

찾아보니 여기로 가서 내 파이썬 버전에 알맞는 버전을 다운받아 해당 프로젝트의 최상위에 위치 시키고 pip install mysqlclient‑1.4.6‑cp38‑cp38‑win32.whl를 하면 된다.

p.s. 여기서도 몇 번 삽질이 있었는데, 우선 내 파이썬 버전을 가상환경의 파이썬 버전과 헷갈려서 다른 파일을 다운받았고, 분명 내 컴퓨터는 64bit인데 파일은 32bit를 받아야 다운로드가 되었다. 왜 그런건지는 모르겠지만 혹시 나같이 삽질하는 사람이 있을까 글을 남겨둔다.

Leave a comment