-
[django] ubuntu 20.0.4에 mysqlclient 모듈 설치하기Backend/Django 2022. 7. 24. 21:50728x90
Python 가상환경 만들기
https://miraekwak.tistory.com/97
문제
오라클 클라이언트 우분투 20.0.4 인스턴스에 장고 프로젝트를 실행하려고 requirement.txt파일에 있는 모듈을 설치하다가 mysqlclient를 설치하면서 에러가 발생했다. 다양한 에러를 겪어서 해결방안 정리!
단순히 가상환경을 만든 후 모듈을 설치하려고 하면 다음과 같은 에러를 보게 된다.
error: "metadata generation failed"
해결방안
1. Python 설치 버전 확인
python -version python3 -version
2. mysqlclient 설치를 위해 필요한 설치
위에서 언급한 에러 해결을 위해 다음을 설치한다.
sudo apt-get install python3.8-dev sudo apt-get install default-libmysqlclient-dev sudo apt-get update # 이거 안하면 다음 명령어 안됨 sudo apt-get install build-essential python -m pip install -U pip or python3 -m pip install -U pip pip3 install --upgrade setuptools
이때 python-dev의 경우 자신의 python version으로 설치한다.
만약 이를 맞춰주지 않으면 다음과 같은 에러를 마주하게 될 것!
(Error)-command 'x86_64-linux-gnu-gcc' failed with exit status 1
error: legacy-install-failure
사실 이 에러에 대해 찾아봤을 때 python버전을 낮추라는 말이 있어서 3.9 -> 3.8로 변경했는데 이건 별로 소용 없는듯...
3.8 이상에서만 가능한 모듈이 있어서 더 이상 낮추지는 못했다.
위의 명령어를 실행했음에도 같은 에러가 난다면 다음을 실행한다.
python3 -m pip install --upgrade pip pip install --upgrade wheel pip install --upgrade setuptools pip install gensim
3. mysqlclient 설치
pip install mysqlclient
이때 갑자기 잘되던 pip 모듈이 없다는 에러가 나타날 수 있다.
"ModuleNotFoundError: No module named 'pip' in Python"
이럴때는 pip를 가상환경을 만들었을 때의 pip로 되돌려주는 명령어를 실행한다.
python3 -m ensurepip --upgrade
이후에 다시 명령어를 실행하면 설치 완료!
참조
:[metadata 어쩌구 에러 해결]
- https://stackoverflow.com/questions/70916814/error-metadata-generation-failed-cant-install-artic-module
- https://discuss.streamlit.io/t/streamlit-cloud-face-issue-in-mysqlclient-installing/23188/2
:[build-essential 설치 실패 해결]https://stackoverflow.com/questions/6486449/using-sudo-apt-get-install-build-essentials
:[python 버전 낮추기]https://sogogi1000inbun.tistory.com/m/91
:[pip 되돌리기]https://bobbyhadz.com/blog/python-no-module-named-pip
:[leggacy-fail-error 해결] https://codecary.com/error-legacy-install-failure-in-python/
:[python-dev 버전 지정]
- https://stackoverflow.com/questions/39539110/pyvenv-not-working-because-ensurepip-is-not-available
- https://www.linuxcapable.com/ko/how-to-install-python-3-8-on-ubuntu-22-04-lts/
728x90'Backend > Django' 카테고리의 다른 글
[Django] AbstractUser를 사용한 UserModel 확장 (0) 2022.07.06 [Django] Rest Framework (0) 2022.05.08 [Django] MVT 패턴 (0) 2022.05.08 [Django] django 프로젝트 시작하기 (0) 2022.05.08