[Python] windows에서 poetry 시작하기

0v0baek·2023년 4월 28일
2

TIP

목록 보기
1/15

👉 window 기준 설치
공식 문서
참고할 만한 블로그

Poetry 설치

  • 윈도우 (powershell)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

이러고 바로 poetry --version 명령어를 실행하면 poetry를 찾을 수 없다고 한다.

이는 환경변수를 추가해주지 않았기 때문에 일어나는 일.

해당 경로를 윈도우 환경 변수에서 설정해주자.

환경 변수 설정

시스템 환경 변수 편집 들어가기

환경 변수(N)... 클릭

시스템 변수(S) 하위의 PATH 값 더블클릭

새로 만들기(N) 클릭해서 아까 그 경로 추가하기

그리고
❗ ❗ ❗ ❗ ❗ ❗ ❗ ❗
재시작 하기
❗ ❗ ❗ ❗ ❗ ❗ ❗ ❗

재시작 하지 않으면 환경 변수가 적용이 안된다!


재시작 후 확인해보면 설치 된 버전이 제대로 확인된다!

가상환경 만들기 (장고 기준)

우선, poetry를 적용시켜줄 폴더를 만들어서 vscode를 열어준다!

아주 깨끗한 상태의 탐색기에 우리는 poetry로 의존성 관리를 해줄 것이다.

poetry 만들기

poetry init


입력해 줄 부분은 열심히 입력하고
쓸 말이 없는 부분은 Enter를 쳐서 넘겨주자.


끝까지 넘기면 이런게 생긴다.

[tool.poetry]
name = "poetry-todo"
version = "0.0.0"
description = "nbc drf todo list poetry"
authors = ["0v0baek <qorqor4592@gmail.com>"]
readme = "README.md"
packages = [{include = "poetry_todo"}]

[tool.poetry.dependencies]
python = "^3.11"


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

들어가보면 내용이 이렇게 되어있다.

내가 아까 써준 내용들과, 아직 python을 제외하고 tool에 아무것도 없는 것을 알 수 있다.

poetry 가상환경 만들기

poetry install

가상환경을 생성해준다.

그럼 이렇게 lock파일이 생긴다.
pyproject.toml 파일과 poetry.lock 파일은 모두 github에 올릴 때 같이 올려줘야 한다.

poetry 가상환경 활성화 / 비활성화

활성화

poetry shell

해당 명령어로 poetry로 만든 가상환경을 활성화 시킬 수 있다.

활성화 시키면 venv 폴더를 만들어서 activate 해줬을 때 처럼 poetry 가상환경이 뜬다.

비활성화

vscode를 끌 때는 이 가상환경을 비활성화 시켜준 뒤 끄는 것이 좋다.
예상치 못한 충돌을 막을 수 있다.

비활성화 시켜보자.

exit

앞에 poetry 안 붙여줘도 됨.

poetry로 패키지 설치

poetry add 패키지 이름

이러면 설치된다.

poetry로 django 시작하기

기본적으로 원래 하던 명령어 앞에 poetry run을 붙여주면 된다.

django 프로젝트 생성

poetry run django-admin startproject 프로젝트 이름

# 현재 폴더에다 프로젝트 만들어주기
poetry run django-admin startproject 프로젝트 이름 .

django app 만들기

poetry run python manage.py startapp 앱이름
poetry run py manage.py startapp 앱이름

django server 시작

# 아래 두 개 모두 똑같음.
poetry run python manage.py runserver
poetry run py manage.py runserver

잘 켜진다!

참고로 영어말고 한글로 나오게 하려면 manage.py에서 수정하면 됨.

# settings.py

LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'

poetry .gitignore 설정

참고 링크

해당 링크 내용을 그대로 복사 붙여넣기 하면 된다.
그리고 gitignore.io 에서 다른 ignore들 추가해주는 것도 잊지말기.

+) 추가 : secret key 설정

dotenv 를 사용하는 방법과 secrets.json 을 사용하는 방법 두가지가 있는데
앞에 건 따로 패키지 설치를 해줘야 해서 귀찮음.

secrets.json 으로 관리해보자.

해당 위치에 secrets.json 파일을 만들어준다.

// secrets.json

{
    "SECRET_KEY": "내 시크릿 키"
}
# settings.py

# 상단에 추가
import os, json
from django.core.exceptions import ImproperlyConfigured

# SECRET_KEY 위치에 해당 내용 복붙
secret_file = os.path.join(BASE_DIR, 'secrets.json') # secrets.json 파일 위치

with open(secret_file) as f:
    secrets = json.loads(f.read())

def get_secret(setting, secrets=secrets):
    try:
        return secrets[setting]
    except KeyError:
        error_msg = "Set the {} environment variable".format(setting)
        raise ImproperlyConfigured(error_msg)

SECRET_KEY = get_secret("SECRET_KEY") # SECRET_KEY 가져오기

이렇게 해도 잘 서버가 작동된다!

그러고 .gitignore 파일에 꼭!! secrets.json 넣어주기.

profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글