# Poetry
홈페이지: https://python-poetry.org/
## Install
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
## Setting
프로젝트 폴더에 가상환경을 추가하기 위한 설정
poetry config virtualenvs.in-project true
## Docs
- [[docker poetry]]
- [[poetry config]]
### poetry update 실패시
[[pip]] upgrade 실행
pip install --upgrade pip
## requirements.txt
cat requirements.txt|xargs poetry add
poetry config experimental.new-installer false
## 패키지 추가시
poetry add [package name]
## apt-get install python3-venv
## 기존 프로젝트에서 옮기는 경우
- https://github.com/sdispater/poetry/issues/46
% poetry init
% poetry add `cat requirements.txt`
apt-get install python3-venv
poetry self:update --preview
poetry env use python3.7
https://www.itsupportwale.com/blog/how-to-upgrade-to-python-3-7-on-ubuntu-18-10/
sudo apt-get install python3.7-venv
## ERROR
### httptools/parser/parser.c:4:10: fatal error: Python.h: No such file or directory
- https://stackoverflow.com/questions/21530577/fatal-error-python-h-no-such-file-or-directory
For apt (Ubuntu, Debian...):
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
## 설정
- https://poetry.eustace.io/docs/configuration/
poetry config virtualenvs.in-project true
- https://github.com/sdispater/poetry/issues/108
### ERROR
```
[ValueError]
Setting virtualenvs.in-project does not exist
```
해결
```
poetry config settings.virtualenvs.in-project true
```
## Integrating Python Poetry with Docker
- https://stackoverflow.com/questions/53835198/integrating-python-poetry-with-docker
FROM python:3.6.6-alpine3.7
ARG YOUR_ENV
ENV YOUR_ENV=${YOUR_ENV} \
PYTHONFAULTHANDLER=1 \
PYTHONUNBUFFERED=1 \
PYTHONHASHSEED=random \
PIP_NO_CACHE_DIR=off \
PIP_DISABLE_PIP_VERSION_CHECK=on \
PIP_DEFAULT_TIMEOUT=100 \
POETRY_VERSION=0.12.11
# System deps:
RUN pip install "poetry==$POETRY_VERSION"
# Copy only requirements to cache them in docker layer
WORKDIR /code
COPY poetry.lock pyproject.toml /code/
# Project initialization:
RUN poetry config settings.virtualenvs.create false \
&& poetry install $(test "$YOUR_ENV" == production && echo "--no-dev") --no-interaction --no-ansi
# Creating folders, and files for a project:
COPY . /code
### Error
- [[python setup.py bdist_wheel did not run successfully]]