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
#라이브러리 확인
~/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 |
---|