본문 바로가기

개발일지/TIL

TIL 23-05-23 머신러닝 팀 프로젝트 - poetry&pyenv 사용하기

1.머신러닝 팀 프로젝트 - poetry&pyenv 사용하기 

 문제점

현재 프로젝트 버전이 3.11인데 tensorflow를 사용하기 위해서는 다운그레이드가 필요함

시도해 본 것들

pyenv 설치하기

https://github.com/pyenv-win/pyenv-win#installation

pyenv global 3.8.10 or pyenv local 3.8.10으로 버전 다운그레이드

pyenv local 3.8.10 <= 로컬 파일에 .python-version 파일 생성
pyenv global 3.8.10

poetry init

poetry init

This command will guide you through creating your pyproject.toml config.

Package name [test]:  
Version [0.1.0]:  
Description []:  
Author [Seman_Kim <sdoramkim@gmail.com>, n to skip]:  
License []:  
Compatible Python versions [^3.11]: ^3.8

직접 작성하면 수정은 되는데 아직도 기본값을 ^3.11에서 어떻게 수정하는지 모르겠다. 

poetry env info

poetry env info
PS C:\Users\Administrator\Desktop\test> poetry env info
Implementation: CPython
Path:           C:\Users\Administrator\Desktop\test\.venv
Executable:     python
Valid:          False

System
Platform:   win32
OS:         nt
Python:     3.11.2
Path:       C:\Users\Administrator\AppData\Local\Programs\Python\Python311
Executable: C:\Users\Administrator\AppData\Local\Programs\Python\Python311\python.exe

아직 3.11.2로 잡히고 env는 연결되지 않은 상태 

poetry env use 3.8.10

poetry env info

poetry env info
Virtualenv
Python:         3.8.10
Implementation: CPython
Path:           C:\Users\Administrator\Desktop\test\.venv
Executable:     C:\Users\Administrator\Desktop\test\.venv\Scripts\python.exe
Valid:          True

System
Platform:   win32
OS:         nt
Python:     3.8.10
Path:       C:\Users\Administrator\.pyenv\pyenv-win\versions\3.8.10     
Executable: C:\Users\Administrator\.pyenv\pyenv-win\versions\3.8.10\python.exe

poerty env의 python 버전 변경 확인 

 

poetry add tensorflow

poetry add tensorflow
For tensorflow-io-gcs-filesystem, a possible solution would be to set the `python` property to ">=3.8,<3.12"

>=3.8, <3.12로 수정을 추천

3.8이상 , 3.12미만 버전 사용하기

[tool.poetry.dependencies]
python = ">=3.8, <3.10"

3.8이상 3.10 미만으로 설정 

poetry add tensorflow

RuntimeError

  Unable to find installation candidates for tensorflow-io-gcs-filesystem (0.32.0)

  at ~\AppData\Roaming\pypoetry\venv\Lib\site-packages\poetry\installation\chooser.py:76 in choose_for
       72│
       73│             links.append(link)
       74│
       75│         if not links:
    →  76│             raise RuntimeError(f"Unable to find installation candidates for {package}")
       77│
       78│         # Get the best link
       79│         chosen = max(links, key=lambda link: self._sort_key(package, link))
       80│

잘 진행하다가 error 발생 

 

https://github.com/tensorflow/io/issues/1617

poetry add tensorflow-io-gcs-filesystem==0.31.0

poetry add tensorflow

 

 해결 방법

아직 패키지 설치만 하고 이게 제대로 진행이 된건지 알지 못한다.

제대로 진행이 됐다고 해도 패키지 설정을 통일하려고 하면 상당한 시간을 소모할 것 같다. 

 알게 된 점

stackoverflow 말고 github의 issue도 잘 검색해서 찾아가면 도움이 되는 내용이 아주 많다. 

python을 사용하면서 version에 대해 별로 생각하지 않았는데 프로젝트 시작시 제대로 버전의 범위를 설정해야 함을 깨달았다. 

poetry를 사용하면서 이번 이슈가 시간이 더 걸렸지만, 이슈를 해결하고 나니 poetry가 제공하는 편의성이 어떤지 살짝 느껴진다. python의 버전을 정해두면 그 버전에 맞는 패키지의 버전이 저장되어 있어서 바로 다른 환경에서도 동일하게 사용할 수 있을 것 같다.