본문 바로가기
개발이야기/python

ModuleNotFoundError: No module named 'mysql' in Python

by adrian7 2023. 1. 2.

No module named 'mysql' in Python  오류 발생 사례

# 소스코드는 단순하다
import mysql.connectoer

 

실행시 ModuleNotFoundError: No module named 'mysql' 가 발생하다

#에러 메세지
Traceback (most recent call last):
  File "/Users/qqqqq/python-code/aa/aa.py", line 1, in <module>
    import mysql.connector
ModuleNotFoundError: No module named 'mysql'

 

mysql library 설치가 안되서 나는 오류인데  virtual environment 만들지 않고 실행하면 위와 같은 오류가 발생하고

구글링으로 해결하는 못하고 헤매는 사례가 많다.

 

#라이브러리 설치
pip3 install mysql-connector-python

#권한이 없나?
sudo pip3 install mysql-connector-python

#모듈 옵션으로 실행
python3 -m pip install mysql-connector-python

위에 명령어로도 동작하지 않으면 python  버젼 문제인가 지웠다가 다시 설치하고 요런 맨땅에 헤딩하는 모습을 옆에서 많이 봐서

코딩을 조금 안다고 덤비지 말고  python 의 기본을 조금 공부하기를 바란다.

 

 

내가 설치한 라이브러리가 어디에 설치가 되고 IDE에서 인터프린터 실행은 어떻게 되는지 이 두가지만 알면 import  에러는 쉽게 잡을 수 있다. 물론 sys.path, sys.base_prefix, sys.prefix 를 알면 이해하는데 도움이 된다.

 

#library가 어디에 설치되었는지 확인
pip3 show mysql-connector-python                                                                                                                                1 ✘ │ aa  │ 20:34:22 
WARNING: Package(s) not found: mysql-connector-python

#pip 가 설정되어 있지 않으면
python3 -m pip show mysql-connector-python                                                                                                                      1 ✘ │ aa  │ 20:55:58 
WARNING: Package(s) not found: mysql-connector-python

 

PC에서 python 프로젝트를 하나만 개발 한다면 전부다 global path 를 잡으면 라이브러리만 설치하면 문제해결은 된다.

하지만 보통 여러 프로젝트? 를 개발 한다고 가정하면 각 프로젝트 단위로 환경설정이 필요하다. 동일한 라이브러리 폴더를 잡아놓고 사용하면 불필요한 라이브러리가 포함될 수 있고, 버전도 각기 다를 수 있다. 

이런 환경을 만들어주는게 virtual environment 즉 venv 다.

 

프로젝트 폴더를 aa 로 만들어주고

 ~/python-code/aa>

#가상 환경 만들기
# -m 모듈 호출
#python3 -m venv 환경이름
python3 -m venv venv

 

vscode&nbsp; venv로 설정 후 화면

#라이브러리 확인 
 ~/python-code/aa> pip3 list                                                                                                                                                       1 ✘ │ aa  │ 20:56:16 
Package    Version
---------- -------
pip        22.3.1
protobuf   3.20.1
setuptools 65.6.3

 ~/python-code/aa> python3 -m pip list                                                                                                                                               ✔ │ aa  │ 21:13:47 
Package    Version
---------- -------
pip        22.3.1
protobuf   3.20.1
setuptools 65.6.3

이제 mysql-connector-python 을 설치해보자

| ~/python-code/aa> pip3 install mysql-connector-python                                                                                                                               ✔ │ aa  │ 21:14:22 
Collecting mysql-connector-python
  Using cached mysql_connector_python-8.0.31-cp310-cp310-macosx_11_0_x86_64.whl (5.1 MB)
Requirement already satisfied: protobuf<=3.20.1,>=3.11.0 in ./venv/lib/python3.10/site-packages (from mysql-connector-python) (3.20.1)
Installing collected packages: mysql-connector-python
Successfully installed mysql-connector-python-8.0.31

설치를 하게 되면 ./venv/lib/python3.10/site-packages 안에 install 되었다고 안내가 나온다.

mysql-connector-python 이 venv 안에 설치되었다.

 

VSCode 로 실행할때는 인터프리터를 가상환경 venv안에 있는 python 으로 선택해서 실행해주어야 된다.

pyCharm 으로 개발할때는 가상환경을 지정해야 되지만 IDE 가 지원되지 않는 환경에서는 잘 맞추어 주어야 한다.

 

'개발이야기 > python' 카테고리의 다른 글

python 가상환경 구성 site  (0) 2023.01.03