DRF+ AI) 웹개발 최종 - 1일차(pyenv,poetry 설치)
오늘은
SA 및 기획 개선/수정을 진행하였다. 역할분배와 상세 일정에 대한 합의를 마치었다.
개발 환경을 셋팅하였다. 이 과정에서 몇가지 오류에 봉착하였으며 이를 통해 변경사항이 발생하였다.
1. SA 및 기획 수정
기획에서는 크게 다음과 같은 변동 사항이 있었다.
1. 냉장고 시스템의 간략화: 현재 사용자의 재료 등록이 매우 자유로운 상태로, 재료의 속성(액체, 고형, 분말형, 가공식품, 원물 등)에 따른 단위 체계를 명확히 할 수 없다는 점이 문제로 제기 되었다. 따라서 재고 관리의 측면을 탈락시키고 단순히 유무 여부만을 저장하는 필터와 비슷한 역할을 부여하기로 하였다.
2. 추천 시스템 선택과 집중: 기존에 제안되었던 추천 알고리즘(예시-날씨데이터나 기분(사용자 입력)에 따른 레시피 추천)을 구현 후보에서 제외하고 사용자 이용기록에 기반한 추천시스템과 이를 응용한 추천 시스템(냉장고 재료 우선 고려, 검색어 우선 고려)을 구현하기로 하였다.
3. 식재료 판매처 링크 제공에 대한 결정: 레시피 상세보기 페이지에서 레시피 정보에 따라 식재료 판매처 링크를 생성하기로 하였다.
그 외에 SA 의 변화는 다음과 같다.
1. 소셜 로그인 API를 보완하였다.
2. 사용자 이용정보를 기록하기위한 테이블 들이 ERD에 추가되었다.
3. 사용자 이용정보를 기록하기위한 API 들이 추가되었다.
4. 역할 분배가 조정되었다.
5. 상세 일정이 정해졌다.
2. 개발환경설정에서 마주친 문제들
windows 에서 poetry와 pyenv설치시 발생한 문제 - Path 설정문제
팀원들이 windows를 사용하는데, windows에서는 둘 모두 설치 및 path 설정이 비교적 난해하고 블로그 마다 설명이 다 달라서 제대로 된 설치를 하는데 난항을 겪었다.
따라서 공식문서에서 설명된 설치방법을 그대로 정리하기로 한다.(23.06.07기준)
가. poetry 설치(https://python-poetry.org/docs/#installation)
먼저 powershell을 켜고 다음의 명령어를 입력한다.
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
만약 python을 마이크로소프트 스토어에서 설치한 경우엔 맨 뒤의 py를 python으로 바꿔준다.
이후 다음의 두 경로중 하나를 환경변수-시스템 변수 에서 path 선택후 편집을 눌러 새롭게 등록한다. 해당위치는 poetry 실행파일/실행파일의 바로가기가 위치한 경로이다. %APPDATA%는 사용자이름\appdata\Roaming 디렉토리를 의미한다.
%APPDATA%\Python\Scripts
%APPDATA%\pypoetry\venv\Scripts
이때 표 형태로 나올 경우 새로 만들기로 등록하면 되고, 한줄 형태로 나올 경우, 맨 뒤에 붙여넣기한 뒤 세미콜론(;)을 붙이면 된다.
다음 명령어를 통해 잘 설치되었고 경로설정이 잘 되었는지 확인가능하다.
poetry --version
나. pyenv설치하기(https://github.com/pyenv-win/pyenv-win/blob/master/docs/installation.md#powershell)
pyenv는 파이썬의 여러 버전들을 손쉽게 바꿔가며 사용하기 위한 패키지이다. mac os에서는 brew를 통해 쉽게 설치가능하지만 윈도우에서는 지원하지 않으며, 윈도우에서 사용하기위한. pyenv-win을 설치하기위해선 다음의 과정을 따르면된다.
먼저 powershell을 관리자권한으로 실행하여 아래 명령어를 실행한다.
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
이때 UnauthorizedAccess error가 발생할 수 있다. 이때에는 다음의 명령어를 실행후 다시 실행한다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
이후 powershell을 재시작 후 다음 동작을 확인한다.
pyenv install -l
만약 이미 설치된 pyenv-win이 있어서 설치를 건너 뛰고 경로설정도 잘 안해줄경우, C:\Users\사용자이름 아래에 있는 .pyenv 폴더를 삭제한뒤 다시 설치를 진행해보면된다.
이후 할 일:
1. 원하는 python 버전을 pyenv로 설치한다.
pyenv install 3.8.6
2. 해당버전의 인터프리터를 선택하고 python 혹은 python3 명령어를 실행해 잘 선택되었는지 확인한다.
pyenv global 3.8.6
3. 원하는 레포지토리로 이동 후 poetry로 가상환경을 만든다.
poetry env use python3
4. 가상환경을 활성화 한다. 이후 poetry install로 공유받은 lock으로부터 의존성 패키지들을 설치하거나 새 프로젝트라면 poetry init으로 패키지관리를 시작하면된다.
poetry shell
운영 체제 및 하드웨어 환경의 문제
가. 일부 macos에서의 문제 1 - 파이썬 버전
팀원중 일부는 pyenv install 3.8.6이 제대로 실행되지 않았다. 이유를 찾아본 결과, 파이썬은 3.8.10 버전 전에는 M1애플실리콘에서의 실행을 지원하지 않았다. 따라서 이는 파이썬 버전을 3.8.10으로 다시 통일하는 것으로 해결하기로 하였다.
나. 일부 macos에서의 문제 2 - tensorflow
팀원중 일부 mac 사용자들은 tensorflow의 설치에서 난항을 겪었다. toml파일에서 버전을 바꾸어 지정하여도 해당 문제는 계속 발생하였다. 원인은 텐서플로우가 M1 애플 실리콘에서는 실행되지 않는 것이었다. 이를 해결하기 위해 나온 패키지인 tensorflow-macos를 설치하여 해결하였다.
다. 일부 하드웨어환경에서의 tensorflow-io-gcs-filesystem 문제
팀원중 window를 사용하는 한사람이 poetry를 이용한 설치 중 다음과 같은 오류를 겪였다.
Unable to find installation candidates for tensorflow-io-gcs-filesystem (0.32.0)
무엇이 문제인지 알수 없었던 도중 튜터님께 질문을 드렸고, 다음의 링크를 제공받아 해결방법을 알 수 있었다.
https://github.com/tensorflow/io/issues/1617
MacOs poetry install of tensorflow failing · Issue #1617 · tensorflow/io
Hello I'm trying to install tensorflow on MacOs with poetry and I get the following error: Unable to find installation candidates for tensorflow-io-gcs-filesystem (0.23.1) For a more complete view ...
github.com
1. pip install tensorflow-io-gcs-filesystem which resulted in the message Successfully installed tensorflow-io-gcs-filesystem-0.31.0
2. poetry add tensorflow-io-gcs-filesystem==0.31.0