본문 바로가기
반응형

Python113

Python - asyncio DeprecationWarning: There is no current event loop DeprecationWarning: There is no current event loop 파이썬은 멀티 스레드 기반으로 실행하기에는 구조상 문제점이 많다. asyncio 는 파이썬에서 싱글스레드 기반에서 비동기 처리시에 활용할 수 있는 최고의 기술이라고 할 수 있다. 필자 역시 스레드 처리를 사용하다가, 변수들의 사용이 불안정함과 다수의 스레드시 처리속도가 급감하는 상황을 경험하고, coroutine 방식으로 처리할 수 있는 asyncio를 사용하도록 코드를 변경하였다. 그런데 사용중 아래와 같은 오류를 발견하게 되었다. 오류를 확인해본 결과 asyncio의 사용 방식이 3.10 버전이상부터 변경되었고, 3.11에서는 호환이 되지 않는다고 한다 그럼 어떻게 변경되었을까? 핵심만 보면, 더이상 event.. 2022. 11. 27.
Python - requests [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed Proxy를 사용하는 환경에서 많이 발생하는 SSL 인증오류인를 자주 확인할 수 있다. requests.exceptions.SSLError: HTTPSConnectionPool(host='httpbin.org', port=443): Max retries exceeded with url: /delay/4 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)'))) SSL 인증은 requests 모듈의 verify를 비활성화하여 진행이 가능하다. 이말은 SSL 확인을 비활성화 .. 2022. 11. 23.
Django - Celery로 비동기 Async Task 구성하기 앞서 진행한 Celery 구성을 통해 간단한 비동기 Task를 예제를 통해 사용해 보고자 한다. 기본적인 Celery를 구성하는 부분은 아래 내용을 참고하기 바란다. Django - Celery 구성하기 (asecurity.dev) Django - Celery 구성하기 Python에서 Celery가 비동기 작업 관리로 많이 사용되고 있어, Django 프로젝트에 도입하기 위해서 사용해 보았다. 구성하는 부분에 약간의 정리가 필요하여 해당 내용을 정리할 겸 글을 작성한다. 1. asecurity.dev 그럼 위 기본 설정이후 Task를 구성해보도록 하겠다. 여기에서는 추가로 생성한 blog 앱에 Task를 구성할 예정이며, 이를 위해 기존 blog/tasks.py 내용을 아래와 같이 수정하였다. 작업은 테.. 2022. 11. 21.
Django - Celery 구성하기 Python에서 Celery가 비동기 작업 관리로 많이 사용되고 있어, Django 프로젝트에 도입하기 위해서 사용해 보았다. 구성하는 부분에 약간의 정리가 필요하여 해당 내용을 정리할 겸 글을 작성한다. 1. 가상환경 구성 가장먼저 기본적인 가상 환경을 구성한다. 세부적인 내용은 아래를 참고하기 바라며 여기에서는 관련 명령어들만 정리하였다. Django - 프로젝트 시작하기 여기에서는 Django 프로젝트를 처음 시작할 때 어떻게 준비하고 시작하는 게 좋은지 간단하게 정리해보고자 한다. 1. 가상 환경 만들기 가장 먼저 해야 할일은 독립 환경을 만드는 것이다. Python - V asecurity.dev C:\Users\Users\python\celery>python -m venv mycelery C:.. 2022. 11. 18.
Celery - No result backend is configured 오류 해결 이는 처음 Django에 Celery를 구성할 때 만날 수 있는 오류중에 친절하지 않아서 발생한 오류라고 할 수 있다. Django에서는 Celery를 사용할 때 환경 설정 값을 CELERY_로 하겠다고 초기 celery.py에 선언하게 된다. 해당 내용을 통해 setting.py에 아래와 같은 Django 에서 Celery의 설정값을 등록해주어야 사용이 가능하다. CELERY_RESULT_BACKEND = 'db+sqlite:///results.sqlite' 을 이용하여 구성이 가능하다. sqlite는 기본적으로 사용이 가능하기 때문에, 별다른 Database 구성이 필요하지 않다. # Celery settings CELERY_BROKER_URL = 'amqp://guest:guest@localhost.. 2022. 11. 18.
Django - Mysql/Maria DB 연결 구성 Django의 기본 Database는 파일기반의 SQLite를 사용하도록 되어 있다. 이를 보다 효율적으로 관리하기 위해서 Mysql/Maria DB 연결 방식을 여기에 기록해 놓는다. 먼저 Django 환경 구성 파일인 setting.py에서 DATABASE 부분을 찾아 다음과 같이 변경하도록 하자. import urllib.parse db_hostname = '' # 데이터 베이스 서버 IP db_name = '' # 데이터 베이스 이름 db_user = '' # 데이터 베이스 유저 이름 db_pass = urllib.parse.quote_plus('') # 데이터 베이스 유저의 비밀번호 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql'.. 2022. 11. 18.
Python - 특정 기호로 문자열 구문하기 shlex Python에서 문자열을 파싱해야 하는 경우 split로 하기에는 조건이 맞지 않는 경우가 있다. >>> import shlex >>> test = 'test, test=testtest, testtesttest="test1=test2"' >>> s = shlex.shlex(test, punctuation_chars=True, posix=True) >>> s.whitespace = ',' >>> list(s) ['test', ' ', 'test=testtest', ' ', 'testtesttest="test1=test2"'] 주요하게 알고 있으면 좋은 옵션은 다음과 같다. whitespace: 구문하고자 하는 기호가 있다면 여기에 넣을 수 있다. 다양한 구문자가 필요하면 여러 값을 넣을 수 도 있다. wo.. 2022. 11. 16.
Python - 16진수로 변환하기 16진수로 각 String을 변경을 쉽게 할 수 있다. 숫자 값을 hex 함수를 사용하면 가능하다. >>> i = 123 >>> str_hex = hex(i) >>> print(str_hex) 0x7b >>> 입력값이 문자열인 경우 2가지를 이용할 수 있는데, int로 지정하여 쉽게 문자열을 숫자 값으로 입력할 수 있다. >>> str_hex = hex(int(i)) >>> print(str_hex) 0x7b 만약 16진수를 int(10진수)로 다시 변환하고자 한다면, int(, 16) 를 통해 16진수임을 지정하여 사용할 수 있다. >>> i = int(str_hex, 16) >>> print(i) 123 2022. 11. 15.
Python - mysql_config not found 가상환경(virtualenv) mysqlclient 설치하기 가상환경에 mysqlclient를 설치할 때 아래와 같은 오류 메세지를 만날 수 있다. mysql_config not found 이 오류는 mysql 기본 패키지 의존을 하는데 이 부분이 보이지 않기 때문에 오류를 경험할 수 있다. 이경우 mysql 관련 패키지을 설치하여 해결이 가능하다. Ubutu apt-get install mysql-server OSX brew install mysql 2022. 11. 15.
반응형