[Windows] pip install mysqlclient 오류 해결방법

김정현

#mysql #python #windows

python에서 mysqlclient를 설치하는 것은 아주 성가신 문제다.

필자의 경우에도 서버가 바뀔 때 마다 환경이 달라져 mysqlclient를 설치하는데 애를 먹고 있다.

다수의 경우에는 환경변수 “MYSQLCLIENT_CFLAGS”, “MYSQLCLIENT_LDFLAGS”를 설정해 mysql header와 lib의 위치를 알려주면 해결되는 경우도 많았는데, 이번에는 이 설정도 무용지물이었다.

필자의 설치 환경은 

  • Windows 10 Pro
  • Python 3.12.0
  • MariaDB 10.9.2
  • Microsoft Visual Studio 2022 (C/C++)

대부분의 경우 mysqlclient는 빠른 속도를 위해 인스톨 과정에서 소스코드를 받아 컴파일하는 절차로 설치되는 것으로 안다.

그런데, 무슨 이유인지 모르겠지만, mysql, mariadb의 header, lib 위치를 찾지 못해 설치 오류가 나는 경우가 많았다.

인터넷에 올라온 해결 방법은 다양하지만, 이번 환경에서 해결 방법은 이렇다.

오류 내용

"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Dversion_info=(2,1,0,'final',0) -D__version__=2.1.0 "-IC:\Program Files\MariaDB\MariaDB Connector C\include\mariadb" "-IC:\Program Files\MariaDB\MariaDB Connector C\include"  ...

위 오류를 살펴보면 컴파일러가 header 파일을 찾기위한 path를 나열한다.

  • C:\Program Files\MariaDB\MariaDB Connector C\include\mariadb
  • C:\Program Files\MariaDB\MariaDB Connector C\include 

그런데, 내가 설치한 MariaDB Connector 경로는 이렇다.

  • C:\Program Files\MariaDB\MariaDB Connector C 64-bit

include와 lib 의 경로를 재설정하기 위해 환경변수 ‘MYSQLCLIENT_CFLAGS’, ‘MYSQLCLIENT_LDFLAGS’를 이용해 path를 지정해 줬지만 반영되지 않고 계속 같은 오류를 표시하였다. 무슨 이유에서인지 이 환경에서는 이 환경변수를 이용하고 있지 않다는 것 같다.

그래서 다른 환경변수가 있는지 찾아보니 ‘MYSQLCLIENT_CONNECTOR’라는 것이 있었다.

power shell에서 ‘MYSQLCLIENT_CONNECTOR’의 값을 connector가 설치된 path로 변경했다.

$Env:MYSQLCLIENT_CONNECTOR = "C:\Program Files\MariaDB\MariaDB Connector C 64-bit"

그리고, 다시 실행해 보니 정상적으로 인스톨 되었다. 해결방법은 간단하지만 모르면 엄청난 시간을 낭비한다. ChatGPT에게도 물어봐도 일반적인 답만 내놓는다. 구글링을 해도 다양한 해결방법은 찾을 수 있지만 나의 환경에 맞는 답이 아닌 경우도 있다. 혹시 비슷한 환경에서 해결방법을 찾는 분이 있다면 이 방법이 도움이 되었으면 한다.

기업 홍보를 위한 확실한 방법
협회 홈페이지에 회사정보를 보강해 보세요.