[EC2] ERROR: No matching distribution found for mysqlclient 해결 방법 (EC2 mysql 패키지 설치 오류)

2023. 6. 6. 06:49·Back-End/AWS
Collecting mysqlclient==2.1.1
  Downloading mysqlclient-2.1.1.tar.gz (88 kB)
     |████████████████████████████████| 88 kB 12.7 MB/s            
  Preparing metadata (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-zlofzpjl/mysqlclient_1493e3f2b2d44ad18f94ac30563e9c05/setup.py'"'"'; __file__='"'"'/tmp/pip-install-zlofzpjl/mysqlclient_1493e3f2b2d44ad18f94ac30563e9c05/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'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-d472glni
       cwd: /tmp/pip-install-zlofzpjl/mysqlclient_1493e3f2b2d44ad18f94ac30563e9c05/
  Complete output (15 lines):
  /bin/sh: line 1: mysql_config: command not found
  /bin/sh: line 1: mariadb_config: command not found
  /bin/sh: line 1: mysql_config: command not found
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-zlofzpjl/mysqlclient_1493e3f2b2d44ad18f94ac30563e9c05/setup.py", line 15, in <module>
      metadata, options = get_config()
    File "/tmp/pip-install-zlofzpjl/mysqlclient_1493e3f2b2d44ad18f94ac30563e9c05/setup_posix.py", line 70, in get_config
      libs = mysql_config("libs")
    File "/tmp/pip-install-zlofzpjl/mysqlclient_1493e3f2b2d44ad18f94ac30563e9c05/setup_posix.py", line 31, in mysql_config
      raise OSError("{} not found".format(_mysql_config_path))
  OSError: mysql_config not found
  mysql_config --version
  mariadb_config --version
  mysql_config --libs
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/50/5f/eac919b88b9df39bbe4a855f136d58f80d191cfea34a3dcf96bf5d8ace0a/mysqlclient-2.1.1.tar.gz#sha256=828757e419fb11dd6c5ed2576ec92c3efaa93a0f7c39e263586d1ee779c3d782 (from https://pypi.org/simple/mysqlclient/) (requires-python:>=3.5). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement mysqlclient==2.1.1 (from versions: 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.3.8, 1.3.9, 1.3.10, 1.3.11rc1, 1.3.11, 1.3.12, 1.3.13, 1.3.14, 1.4.0rc1, 1.4.0rc2, 1.4.0rc3, 1.4.0, 1.4.1, 1.4.2, 1.4.2.post1, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0rc1, 2.1.0, 2.1.1, 2.2.0rc1)
ERROR: No matching distribution found for mysqlclient==2.1.1

 

AWS EC2에서 Flask를 배포하던 중 패키지 설치 에러가 발생했습니다.

mysqlclient이 문제였습니다.

 

mysqlclient가 정상적으로 설치되지 않으면서 에러 메시지를 보내고 있습니다.

잘 설치하고 구동했던 게 갑자기 안 돼서 이것저것 찾아보고 엄청난 삽질 끝에 해결했습니다. 😥

 

 

🧾삽질 기록

1. 스택 오버플로우 검색하며 여러 명령어 테스트 (실패)

2. 가상 환경에서 패키지 구성 (실패) 

3. EC2 객체 제거 후 다시 생성 (실패)

4. 커스텀 패키지 저장소 추가하기 (실패)

 

5. EL9 버전의 레포지토리와 mysql-community-server

설치 후 필요한 라이브러리 설치 (성공)

 

❗ 해결 과정 중 발생한 에러들
no match for argument: mysql-devel error: unable to find a match: mysql-devel

Collecting Flask-MySQLdb==1.0.1 Using cached Flask-MySQLdb-1.0.1.tar.gz (4.3 kB) Preparing metadata (setup.py) ... done

ERROR: Could not find a version that satisfies the requirement mysqlclient==2.1.1

ERROR: No matching distribution found for mysqlclient

 

 



📝해결 방법

 

✔ 이런 패키지 충돌이 발생하는 원인은 Amazon Linux에서 지원하지 않는 버전의 레파지토리를 설치했기 때문입니다. Amazon Linux 2023의 경우 EL9 버전의 레파지토리와 mysql-community-sever를 설치해야합니다.

sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo dnf install mysql-community-server

 

✔ mysqlclient를 사용하기 위해 필요한 라이브러리를 순서대로 설치합니다.

원래 에러가 발생하던 구간이었는데, 위에 있는 명령어로 해결이 되었습니다.

이후 다시 mysqlclient를 설치합니다. 끝!

#필요한 종속성 설치
sudo yum install python3-devel mysql-devel gcc

#라이브러리 설치하기
pip3 install -r requirements.txt

or

pip3 install mysqlclient

 


 


참고 문헌 : 

https://dev.classmethod.jp/articles/ec2-mysql-install-confilicting-requests-error-kr/

'Back-End > AWS' 카테고리의 다른 글

[AWS] RDS와 MySQL Workbench 연동 에러 해결 (unable to connect to localhost)  (7) 2023.06.01
[AWS] EC2 인스턴스 증발, 사라짐 문제 해결방법  (0) 2023.05.31
[AWS] AWS Access Key란? (엑세스 키 생성 방법)  (0) 2023.05.14
'Back-End/AWS' 카테고리의 다른 글
  • [AWS] RDS와 MySQL Workbench 연동 에러 해결 (unable to connect to localhost)
  • [AWS] EC2 인스턴스 증발, 사라짐 문제 해결방법
  • [AWS] AWS Access Key란? (엑세스 키 생성 방법)
현기
현기
  • 현기
    현기의 개발블로그
    현기
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • Front-End (39)
        • Next (5)
        • React (8)
        • React Native (11)
        • Flutter (0)
        • Vue (1)
        • JSP (9)
        • HTML, CSS, JS (5)
      • Back-End (16)
        • Node.js (3)
        • Spring (8)
        • Flask (1)
        • AWS (4)
      • DB (5)
        • Oracle (4)
        • MySQL (1)
      • Python (7)
      • Java (27)
        • 자바 이론 (17)
        • 코딩테스트 연습 & 실습 (10)
      • 자료구조 & 알고리즘 (7)
        • 코딩테스트 (6)
        • 알고리즘 (1)
      • 블록체인 (0)
      • 프롬프트 엔지니어링 (0)
      • CS 지식 (5)
      • IT뉴스 (0)
      • 일상 (3)
      • etc (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    node.js
    큐
    포스트맨
    next-intl
    React Native Chart
    react
    오블완
    React Native
    리액트 네이티브
    쓰레드
    자바스크립트
    DI
    REST API
    IS-A
    그리디
    Express
    react-native-chart-kit
    자바 스프링
    자바
    상속
    Python
    JSP
    서블릿
    티스토리챌린지
    스택
    Java
    JDBC
    오라클
    파이썬
    Spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
현기
[EC2] ERROR: No matching distribution found for mysqlclient 해결 방법 (EC2 mysql 패키지 설치 오류)
상단으로

티스토리툴바