freeze 를 이용해 패키지 복붙

givemcdonalds·2023년 7월 1일
0

AIgrapher

목록 보기
5/5

ec2 서버에서 django 를 실행하려고 했다. 하지만 방금 생성한 ubuntu에는 아무것도 설치된 것이 없다. 이럴땐 git과 freeze를 이용해서 패키지를 설치하면 된다.(평소 가상환경을 생성후 패키지 설치하기 귀찮을 때도 사용가능 할 것 같다)

1.

$ pip freeze

  • 현재 가상환경에 설치되어있는 패키지 목록을 나열함
asgiref==3.5.2
Django==4.1
mysqlclient==2.0.3
pip==23.0.1
setuptools==66.0.0
sqlparse==0.4.3
wheel==0.38.4

2.

$ pip freeze > requirements.txt

  • freeze의 내용을 requirements.txt에 담음

3. github에 push

4. ec2 서버로 돌아가서 github의 변경된 내용을 pull

$ git pull origin main

5.

$ pip install -r requirements.txt

  • 설치완료

error 해결 01

freeze 명령어를 실행했을때

$ pip freeze

asgiref @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_63w24gebjz/croots/recipe/asgiref_1661287537348/work
Django @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_cdse89o2w5/croots/recipe/django_1661292537238/work
mysqlclient @ file:///Users/ktietz/demo/mc3/conda-bld/mysqlclient_1630566037602/work
sqlparse @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_73ubbfcjni/croot/sqlparse_1668793445223/work

위와 같은 내용으로 나와 가상서버에서 requirement.txt를 불러왔을때 에러가 발생했다.

해결방법

$ pip list --format=freeze > ./requirements.txt

이 코드를 실행하면 freeze의 내용들이 변형됨

asgiref==3.5.2
Django==4.1
mysqlclient==2.0.3
pip==23.0.1
setuptools==66.0.0
sqlparse==0.4.3
wheel==0.38.4

error 해결 02

$ pip install -r requirements.txt

github에서 pull한 내용의 requirements.txt 파일을 ubuntu 서버에 읽어서 패키지를 다운로드 하려던 도중 아래와 같은 error가 발생함

Collecting mysqlclient==2.0.3 (from -r requirements.txt (line 3))
  Using cached mysqlclient-2.0.3.tar.gz (88 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [16 lines of output]

이 에러는 mysqlclient 패키지를 설치하는 동안 발생한 문제입니다. 에러 메시지를 보면 mysql_config와 mariadb_config 명령어를 찾을 수 없다는 내용이 나와 있습니다. 이는 필요한 MySQL 또는 MariaDB 개발 패키지가 시스템에 설치되어 있지 않아서 발생하는 문제입니다.

해결방법

해당 개발 패키지를 설치해주면 됨

mysql을 사용한다면

$ sudo apt-get install libmysqlclient-dev

MariaDB를 사용한다면

$ sudo apt-get install libmariadb-dev

profile
운동 좋아하는 개발자

0개의 댓글