일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래머스 코딩테스트 연습
- Codeforces
- 프로그래머스 월간 코드 챌린지 시즌1
- heroku
- c#
- 클린 코드
- git
- selenium
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- PostgreSQL 설치 시 에러
- Spring Boot
- Python
- FastAPI
- 바이오데이터 엔지니어
- 프로그래머스 코딩 테스트 연습
- Word Cloud
- 애드센스
- 브랜디
- PostgreSQL
- WPF
- 프로그래머스 월간 코드 챌린지
- github
- github actions
- 파이썬
- Firefox
- terraform
- 스코페2021
- pycharm
- 디자인 패턴
- 프로그래머스 코딩테스트 연습문제
- Today
- Total
목록Python (18)
프로그래밍 연습하기
Youtube 재생목록에 어떤 동영상들이 있는지 가져오려고 합니다. 처음에는 파이썬의 패키지인 Youtube-dl을 사용해야하나 싶었는데 방법을 알아보니 구글에서 제공하는 API가 있었습니다. 그런데 먼저 준비해야될 것은 Google Cloud Console(https://console.cloud.google.com/) 에서 프로젝트를 생성 후 API 및 서비스 -> 라이브러리에서 YouTube Data API v3 을 사용 설정하고 API Key를 만들어서 그 키로 API를 사용해야 됩니다. def get_playlist_items(playlist_id = None): playlist_id = "유튜브 재생목록 ID" api_key = os.getenv("YOUTUBE_API_KEY") # 발급받은 A..
WSL로 파이썬 셀레니움을 사용하려던 중 다음과 같은 에러를 봤습니다. selenium.common.exceptions.InvalidArgumentException: Message: binary is not a Firefox executable 분명히 정확한 위치의 파이어폭스 바이너리 경로를 넣어줬는데 에러가 나서 감을 못 잡고 있었는데, 한참 찾다 다음과 같은 방법으로 해결할 수 있었습니다. options = Options() options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') geckodriver_path = "/snap/bin/geckodriver" # specify the path to your g..
Alembic의 alembic.ini 파일에 이런 식으로 DB 주소를 적는데요. sqlalchemy.url = postgresql://user:password@localhost:5432/database_name 저는 환경변수에 저장된 DB 주소를 불러오고 싶었는데, ini 파일이라서 환경변수를 사용할 수가 없었습니다. 그래서 방법을 찾아 본 결과 alembic init을 한 디렉토리에 있는 env.py 파일에서 다음과 같은 코드를 입력하는 방법이 있었습니다. config.set_main_option("sqlalchemy.url", os.getenv("DATABASE_URL", "postgresql://user:password@localhost:5432/database_name")) 설정 단계에서 환경 변..
FastAPI 앱을 만들어서 배포해보는 프로젝트를 하는데, Gunicorn 로그 포맷이 바뀌지 않는 문제가 있었습니다. 그래서 여러 방법으로 바꿔보려고 했는데, 여전히 성과가 없어 인터넷을 더 찾아보니 다음과 같은 이슈를 찾을 수 있었습니다. https://github.com/encode/uvicorn/issues/527 Honor gunicorn access log format · Issue #527 · encode/uvicorn When running under gunicorn, --access-logformat isn't honored. There was some discussion of this in #389, but I didn't see an open issue for it. github.co..
Pycharm을 사용해서 파이썬 코드를 작성하는데 전에 뜨지 않았던 Unexpected Argument라는 경고가 떴습니다. Sqlalchemy의 테이블을 정의하고 사용하는 부분이었습니다. Mixin 클래스를 만들어서 다중 상속 했더니 Argument를 예측하는 부분에서 문제가 생기는 것 같습니다. class Mixin(object): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) 이렇게 Mixin 클래스에 __init__을 정의해주어서 해결할 수 있었습니다. 참고 https://stackoverflow.com/questions/59606289/unexpected-argument-warning-on-mixin-with-pyt..
저는 파이썬 프로젝트를 할 때 Pycharm을 이용해서 프로젝트마다 Venv를 설정하여 사용합니다. 예전에는 그냥 VSCode를 이용했는데, Github에 올리려니까 의존성 관리를 위해 Venv를 사용하게 되었습니다. 그런데 VSCode로 하려니깐 제가 미숙한 탓에 설정이 제대로 안되고 계속 바뀌는 것 같아서 더 간단하게 관리할 수 있는 Pycharm을 사용 중입니다. 그런데 이번에 프로젝트를 하면서 새로운 패키지가 필요해서 Pycharm terminal에서 pip를 이용해서 설치를 했는데 설치가 안되었다고 뜨더라구요. 그래서 pip -V 를 입력해서 버전과 경로를 확인해봤는데 Venv를 통해 만들어진 환경이 아니라 기존 파이썬 환경이었습니다. Venv를 사용 중이니깐 Venv 파이썬과 pip가 먼저 실..
FastAPI를 사용해서 웹 애플리케이션 프로젝트를 하는 중인데, 테스트를 하려는데 에러가 자꾸 나서 제대로 하지 못했었습니다. 발생한 에러는 Pycharm Run으로 pytest를 이용한 테스트 중에 app = FastAPI() app.mount("/static", StaticFiles(directory='static'), name="static") templates = Jinja2Templates(directory='templates') 이 부분에서 StaticFiles에서 static directiory를 찾지 못하는 에러와 templates directiory도 마찬가지로 찾지 못하는 에러였습니다. 그런데 직접 Pycharm 터미널에서 (venv) C:\Users\USER_NAME\PycharmP..
어떤 글자를 이미지로 얻으려고 하는데 폰트의 저작권이 있으니까 아무거나 가져와서 쓰기는 좀 그렇더라구요. 그래서 저작권 문제 없는 폰트를 찾아 이미지로 만들기로 했습니다. 몇 글자 정도면 그냥 어디에 작성을 해서 그것을 캡쳐해서 가져올 수도 있겠지만 만약 많은 문자를 얻어야 한다고 하면 귀찮은 일이 되기도 하고 이미지 편집 프로그램은 많이 사용 해 본 적이 없어서 프로그래밍으로 간단하게 할 수 있는 방법을 찾아봤습니다. 그래서 찾은 것이 파이썬의 Pillow(PIL)라이브러리 입니다. PIL(Python Imaging Library)은 예전부터 있던 라이브러리인데, 현재는 지원이 중단되고 PIL을 포크하여 지금까지 유지 보수되는 Pillow 라이브러리가 사용되고 있습니다. from PIL import I..
파이썬 Collections 에 defaultdict라는 것이 있습니다. 어디선가 몇 번 본 기억은 있는데 그냥 별 생각 없이 지나쳤었는데, 얼마 전 관련 글을 좀 보니까 상당히 편리한 Container 임을 알게 되었습니다. 예를 들어 어떤 문자열에서 알파벳의 수를 셀 때 일반 dict() 의 경우 알파벳들을 먼저 키로 등록 해두던가 아니면 문자열을 돌면서 먼저 해당 알파벳이 키로 있는지 없는지 확인하고 없으면 값을 1로 해주고 있는 경우 값을 1 추가해주는 그런 번거로운 방식을 써야되는데 my_dict = dict() my_string = "abc" for s in my_string: if my_dict.get(s): my_dict[s] += 1 else: my_dict[s] = 1 defaultdi..
파이썬으로 텍스트 파일을 다루다가 제목과 같은 에러를 만났습니다. BOM 문자가 포함되여 생기는 문자로 BOM문자에 대해서는 나무위키에서 설명을 볼 수 있었습니다. https://namu.wiki/w/BOM BOM - 나무위키 구매해야될 부품등을 하나로 모아놓은 주문 명세서. 주로 전자쪽에서 쓰이는 말이며 제품을 제작할때 이에 필요한 부속품등의 데이터를 하나의 파일로 모아서 만들어놓은것을 BOM이라고 한다. namu.wiki 그리고 스택오버플로에서 해결방법을 찾을 수 있었습니다. https://stackoverflow.com/questions/8898294/convert-utf-8-with-bom-to-utf-8-with-no-bom-in-python Convert UTF-8 with BOM to UTF..