에러 노트(1) - mysqlclient 설치 에러
새로운 프로젝트를 연습하려고 셋팅을 하던 도중 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