본문 바로가기

python67

[python] ERROR: Unnamed requirements are not allowed as constraints 오류 처리 pip를 이용하여 superset을 설치할 때 다음과 같은 오류가 발생하였습니다. $ pip install apache-superset==2.1.1 -c https://raw.githubusercontent.com/apache/superset/2.1.1/requirements/base.txt DEPRECATION: Constraints are only allowed to take the form of a package name and a version specifier. Other forms were originally permitted as an accident of the implementation, but were undocumented. The new implementation of the res.. 2023. 11. 11.
[python] pyyaml 설치중 _DeprecatedConfig: Deprecated config in `setup.cfg` 오류 슈퍼셋을 설치 하는 중 requirements.txt 파일에 pyyaml 이 들어 있었고, 설치 중 다음과 같은 오류가 발생하였습니다. × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [62 lines of output] /tmp/pip-build-env-kcr6bs1q/overlay/lib/python3.10/site-packages/setuptools/config/setupcfg.py:293: _DeprecatedConfig: Deprecated config in `setup.cfg` !! 해결방법 해당 문제는 아직 논의 중인 것으로 보이고, 다운그레이드나 업그레이드로 문제를 해결할 수 있는 것으로 보.. 2023. 11. 8.
[python] python-kafka 라이브러리에서 ssl.SSLError: [SSL] PEM lib (_ssl.c:3833) in python ssl library 오류 처리 파이썬 카프카 라이브러리에서 ssl 을 이용한 통신을 할 때 이런 오류가 발생하는 경우가 있습니다. 이럴 때는 사용하는 ssl key 파일의 형식을 확인 하는 것이 좋습니다. 저의 경우에는 ssl 선언할 때 사용한 pem 파일의 형식이 정상적이지 않아서 발생하였습니다. pem 파일이 맞는지, 정상적인 파일인지 확인하는 것이 좋습니다 . producer = KafkaProducer(acks=0, bootstrap_servers=kafka_hosts, security_protocol='SSL', ssl_check_hostname=True, ssl_cafile="ca-certs.pem", ssl_certfile="server.pem", ssl_keyfile="key.pem", ssl_password="your.. 2023. 9. 13.
[pyhive] pyhive에서 커버로스 인증을 사용할 때 no mechanism available: No worthy mechs found 오류 PyHive에서 커버로스 인증을 사용할 때 다음과 같은 오류가 발생 하였습니다. File "/usr/local/lib/python3.6/site-packages/thrift_sasl/__init__.py", line 72, in open message=("Could not start SASL: %s" % self.sasl.getError())) thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found 이 오류는 cyrus-sasl 라이브러리가 설치 되어 있지 않을 때 발생합니다. .. 2023. 8. 19.
[python] 커맨드 출력 결과에서 ansi color code 만 제거 하는 방법 bash shell 커맨드 출력 결과에서 위와 같이 색상이 추가 되어 나오는 경우가 있습니다. 이런 경우 사용자가 보기에는 좋지만 이를 파싱해서 처리해야 하는 경우 보기가 힘듭니다. python 에서 정규식을 이용하여 색상 코드만 제거할 수 있습니다. 사용 방법은 다음과 같습니다. https://stackoverflow.com/questions/14693701/how-can-i-remove-the-ansi-escape-sequences-from-a-string-in-python How can I remove the ANSI escape sequences from a string in python Here is a snippet that includes my string. 'ls\r\n\x1b[00m\x1.. 2023. 8. 13.
[python] 함수 변수의 *, ** 전달자 확인 파이썬 함수에 변수를 전달 할 때 *, ** 를 이용할 수 있습니다. *는 튜플로 변수를 전달 하고, **는 딕셔너리로 변수를 전달합니다. 2023. 7. 2.
[python] pandas import 시 UserWarning: Could not import the lzma module. Your installed Python is incomplete 오류 판다스를 import 할 때 이런 경고가 출력되었습니다. 이 경우 파이썬 커널을 빌드할 때 lzma 모듈이 없어서 파이썬 라이브러리에 추가 되지 못했기 때문입니다. 이 경우 다음의 명령으로 lzma 라이브러리를 추가하고 파이썬을 신규로 빌드해 주어야 합니다. sudo apt install liblzma-dev 2023. 3. 21.
[python] request 함수를 사용하여 오류가 발생했을 때 재작업하는 방법 request 를 이용하여 http 요청을 처리할 때 재작업을 해야 하는 경우가 있습니다. 하나는 서버에 연결후 정상적으로 응답이 와서 응답을 보고 재작업을 해야 하는 경우 retry 모듈을 이용하여 재작업을 처리할 수 있습니다. 다른 방법은 서버에 정상적으로 연결이 되지 않는 경우 다시 재작업을 해야 하는 경우 데코레이터 모듈을 이용하여 재작업을 할 수 있습니다. retry 모듈 retry 모듈은 서버의 응답에 따라서 재작업을 진행할 수 있습니다. 서버가 특정 응답을 보낼때는 재작업을 한다는 룰을 가질 수 있는 경우 사용할 수 있습니다. https://brownbears.tistory.com/613 [Python] requests 모듈 retry 추가하기 requests 모듈은 https://brown.. 2022. 11. 16.
[python] requests 라이브러리에서 exceptions.MaxRetryError 가 발생하는 경우 처리 방법 requests를 기본 문법으로 사용하면 일반 적인 경우에는 문제가 되지 않지만, http 호출을 자주 하게 되면 exceptions.MaxRetryError가 발생하는 경우가 있습니다. 이럴때는 request 의 session을 이용해서 connection을 재사용할 수 있도록 설정해 주면 문제를 해결할 수 있습니다. pool_connections, pool_maxsize, max_retries 를 추가해서 설정할 수 있습니다. 2022. 5. 17.
[python] http를 이용한 post 구현 파이썬 requests 라이브러리의 post를 이용하여 multipart/form-data 데이터를 전달 할 때 기본적으로 gzip 압축을 하게 됩니다. 코드를 확인해 보면 자동으로 압축을 처리하고, 이를 처리하지 않게 하는 옵션이 존재하지 않기 때문에 서버가 gzip 압축을 이용한 데이터를 받아 준다면 문제가 없지만, 서버가 압축된 데이터를 받아주지 않는다면 따로 구현을 해야 합니다. 디버깅 옵션을 이용해서 헤더 정보를 확인해보면 이렇게 데이터가 들어가는 것을 알 수 있습니다. Accept-Encoding: gzip, deflate multipart/form-data 전달 규정 http에서 multipart/form-data를 전달하는 공식 문서를 확인하고 이를 참고해서 코드를 작성하였습니다. http.. 2022. 5. 17.
[python] datetime 변환시 타임존을 설정해야 하는 이유 파이썬을 이용하여 문자열을 datetime 형식으로 변경할 때 타임존을 명시적으로 설정하지 않으면 파이썬은 현재 서버의 기본 타임존을 자동으로 설정합니다. 모든 서버의 환경이 동일하다면 문제가 없지만, 운영과 테스트환경의 설정이 다른 경우 문제가 발생할 수 있습니다. 아래의 경우 동일한 코드를 실행하였지만 서버의 타임존이 달라서 다른 결과를 보여주고 있습니다. --------------- 한국 타임존 ----------------- $ python3 Python 3.6.9 (default, Jan 26 2021, 15:33:00) [GCC 8.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> >>.. 2022. 5. 17.
[python] 우분투에 파이썬 3.7 설치 우분투(ubuntu)에 파이썬 특정 버전을 설치 하는 방법입니다. 우분투는 apt를 이용해 파이썬을 설치할 수 있습니다. 하지만 특정 버전을 설치 하기 위해서는 파이썬 홈페이지에서 binary 파일을 다운받아서 빌드하면 됩니다. 2021. 5. 27.
[python] pymysql 을 이용하여 db insert, update, select 하기 파이썬에서 MySQL이나 MariaDB를 이용할 때는 pymysql 라이브러리를 이용합니다. pip를 이용하여 라이브러리를 먼저 설치하고 다음의 예제를 이용하면 됩니다. pymysql 설치 pip install PyMySQL execute vs executemany execute는 단발성 입력 executemany는 배치 잡을 처리 dict 형으로 데이터를 입력할 때 DB의 키워드(예약어) 데이터가 있으면 오류가 발생함. 2020. 12. 28.
[python2] 출력된 유니코드를 한글로 확인하는 방법 파이썬 2에서는 유니코드가 제대로 출력되지 않기 때문에 웹서버응답으로 한글이 들어오면 유니코드자체가 출력되는 경우가 있습니다. 유니코드를 한글로 출력하는 방법은 인코딩을 추가하면 확인할 수 있지만 에러 메시지일때는 간단하게 확인하기가 어렵습니다. 이럴 때는 간단하게 python3에서 유니코드를 출력하면 한글을 확인할 수 있습니다. # 오류 [08/Dec/2020 21:55:05 +0900] forms ERROR u'\uac00\ub2a5\ud55c \uad6c\uc131 \uc624\ub958' to boolean value # 파이썬3 실행후 출력 $ python3 Python 3.6.8 (default, Apr 16 2020, 01:36:27) [GCC 8.3.1 20191121 (Red Hat 8... 2020. 12. 8.
[python] ffi.h: No such file or director 오류 해결 방법 문제 hue를 빌드하는 중에 libffi 패키지에서 다음 파일이 없어서 오류가 발생하는 경우가 있습니다. 이는 파이썬 2, 파이썬 3의 설치 여부에 따라 디펜던시 정보가 달라져서 발생합니다. fatal error: ffi.h: No such file or director 해결방법 이 문제가 발생하면 다음 설치를 파이썬2, 파이썬3를 설치하고 다시 실행하면 됩니다. sudo yum install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain gcc gcc-c++ krb5-devel libffi-devel libxml2-devel libxslt-devel make mysql mysql-devel openldap-devel sqlite-de.. 2020. 9. 29.
[python] _mysql.c: Cannot open include file my_config.h 오류 해결 방법 문제 hue를 빌드하는 중에 파이썬 mysql 라이브러리에서 MySQL-python-1.2.5 컴포넌트를 빌드하는 중 다음 오류가 발생하였습니다. _mysql.c: Cannot open include file my_config.h 해결방법 이 문제를 해결하는 방법은 MySQL 개발 페이지에서 my_config.h 파일을 다운로드 받아서 컴포넌트의 위치에 복사하면 됩니다. MySQL 개발 페이지 https://dev.mysql.com/doc/dev/mysql-server/8.0.11/my__config_8h_source.html 2020. 9. 29.
[python] pip의 프록시 설정 방법 프록시가 필요한 환경에서 pip를 설정할 때 proxy, tursted-host를 설정해야 합니다. # pip로 xgboost 설치 pip --proxy http://{proxy-ip}:{proxy-port} --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org install xgboost 2020. 6. 11.
[numpy] 넘파이(numpy)의 random 함수를 이용하여 테스트 데이터 생성하는 방법 NumPy에서 랜덤한 값을 생성하는 random에 대해서 알아보겠습니다. random에서 랜덤한 값을 생성하는 함수는 아래와 같습니다. https://numpy.org/doc/1.16/reference/routines.random.html Random sampling (numpy.random) — NumPy v1.16 Manual randint(low[, high, size, dtype]) Return random integers from low (inclusive) to high (exclusive). numpy.org 함수 설명 rand(d0, d1, …, dn) 주어진 차원으로 임의의 값을 반환 randn(d0, d1, …, dn) "표준 정규"분포에서 주어진 차원으로 임의의 값을 반환 randin.. 2020. 4. 23.
[python][bs4] BeautifulSoup 사용 예제 beautifulsoup을 이용하여 HTML을 파싱하는 방법을 알아보겠습니다. bs4의 주요 객체 A B C Tag HTML Tag 객체 로 둘러쌓인 객체 NavigableString Tag 밖의 문자, 개행 문자 문자 B Comment 등 HTML 주석 BeautifulSoup HTML 문서 그 자체 예제 태그의 id, class 정보를 이용하여 찾는 방법 태그 애트리뷰트 정보를 이용하여 찾는 방법 Tag객체의 정보를 확인하는 방법 2019. 9. 27.
[python] 우지 웹서비스 API 라이브러리 소개 우지(oozie) 웹서비스를 이용하기 위한 파이썬 라이브러리를 소개 합니다. pip를 이용해서 설치하고 사용할 수 있습니다. 설치 방법과 사용방법은 다음과 같습니다. 설치 방법 pip install oozie-webservice-api 사용방법 2019. 7. 10.
[python] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 오류 수정 파이썬의 urllib 라이브러리를 이용하여 개발하는 중 다음의 오류가 발생하였습니다. 파이썬3 부터는 PEP 476 규약에 따라 HTTPS 프로토콜을 이용하는 경우 인증서를 이용하여 유효성 체크를 하도록 되어 있는데, 로컬의 인증서를 가져오지 못하기 때문에 발생하는 현상입니다. [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate 인증서의 위치를 전달하 거나, PEP 476 문서에서 알려주는 방법처럼 인증서를 확인하는 절차를 무시하게 하면 됩니다. 수정한 쿼리는 다음과 같습니다. 2019. 6. 25.
[python] 파이썬을 이용한 프로그레스바 처리 파이썬에서 프로그레스바를 처리하는 방법은 문자를 출력하고, 캐리지 리턴(/r) 문자를 이용하여 출력 커서를 다시 첫번째 라인으로 옮겨서 다시 출력하게 하는 것입니다. * 이 소스는 터미널 환경에 따라서 개행이 될 수도 있습니다. 실제 환경에서 테스트를 해보시는 것이 좋습니다. 이클립스에서 실행하면 개행이 되고, 로컬 터미널에서 하면 개행이 되지 않습니다. 원본 소스코드는 다음 페이지에서 확인이 가능합니다. 추가적으로 tqdm 라이브러리를 이용하면 좀 더 편리하게 프로그레스바를 출력할 수 있습니다. https://stackoverflow.com/questions/3173320/text-progress-bar-in-the-console/34325723#34325723 Text Progress Bar in t.. 2019. 6. 17.
[python] 하둡 YARN REST API 라이브러리 hadoop-yarn-rest-api 하둡 YARN의 REST API를 이용할 수 있는 python2용 라이브러리를 소개합니다. 하둡 YARN의 REST API중 일부를 구현하였습니다. Cluster Writeable APIs 부터는 알파 버전이기 때문에 구현하지 않았고, YARN의 정보를 확인하는 용도로 사용하면 될 것 같습니다. 구현 목록은 다음과 같습니다. - Cluster Information API - Cluster Metrics API - Cluster Scheduler API - Cluster Applications API - Cluster Application Statistics API - Cluster Application API - Cluster Application Attempts API - Cluster Nodes AP.. 2019. 5. 29.
[python] 파이썬 상속과 __init__ 을 이용한 부모 호출 예제 파이썬 상속과 메소드 오버라이딩을 이용하여 메소드를 새로 만드는 예제입니다. 2019. 3. 2.
[python] beautifulsoup을 이용하여 웹크롤링(crawling) 하는 샘플 bs4(BeautifulSoup)는 파이썬의 HTML을 파싱하는 유용한 도구 입니다. 네이버 IT뉴스의 HTML을 가져와서 분석하는 방법을 알아보겠습니다. 2019. 2. 14.
[사용방법] reStructuredText(rst) 문서 작성방법 reStructuredText는 문서를 작성하는 언어입니다. 파이썬 라이브러리를 등록하는 pypi는 rst 형식으로 문서를 등록합니다. rst는 마크다운(md)과 유사합니다. Git에서 마크다운을 작성해본 경험이 있는 사람은 쉽게 적응 할 수 있을 것입니다. 다음은 RST작성 문법 매뉴얼 사이트와 예제입니다. RST 작성 문법 - 바로가기 2019. 2. 11.
[python] PIP에 패키지 등록하는 방법 파이썬의 패키지 배포는 pypi 사이트를 이용합니다. 개인적으로 만든 패키지를 pypi 사이트에 배포하는 방법을 알아보겠습니다. 준비사항-PIP 패키지 설치 pypi에 패키지를 배포하기 위해서는 다음 3개의 패키지를 설치하는 것이 좋습니다. pip install wheel # 빌드 툴 pip install setuptools # 패키징 툴 pip install twine # 패키지 업로드 툴 각 패키지의 상세한 내용은 다음 내용을 참고 바랍니다. wheel 파이썬 빌드& 패키징 포맷입니다. 기존 egg 포맷을 대체하는 포맷입니다. wheel vs egg 파이썬 공식 문서[바로가기] setuptools 파이썬의 기본 라이브러리인 distutils를 개선한 패키지 개발 라이브러리 setup.py 파일에 관련.. 2018. 10. 16.
[python] 데코레이터를 이용하여 파라미터의 값을 제한 하는 예제 파이썬에서 파라미터로 전달받는 데이터의 값을 제한하기 위해서 데코레이터를 이용하는 방법은 다음과 같다. 파이썬3면 Enum을 이용하면 좀더 깔끔하게 처리할 수 있을 것 같다. 인스펙트를 이용하여 추가로 처리하는 예제는 다음과 같다. #!/usr/bin/env python # -*- coding: utf-8 -*- import inspect values = [ "a", "b", "c" ] def check_param_values(param_name, check_list): def wrapper(func): param_index = inspect.getargspec(func).args.index(param_name) def decorator(*args, **kwargs): if args[param_index.. 2018. 9. 7.
[python] 파이썬의 데코레이터(Decorator) 간단 예제 파이썬의 데코레이터는 함수를 실행하기 전과 후에 공통적으로 해야할 작업이 있을 경우 사용하면 도움이 된다. @을 이용하여 함수위에 선언해주면되고, 데코레이터는 함수, 클래스를 이용하여 선언할 수 있다. 다수의 데코레이터를 적용할 수도 있다. 간단한 예제는 다음과 같다. 실행결과는 다음과 같다. print_hello1시작 hello1 print_hello1종료 ------------------------------- 2018-07-26 15:18:16.128121 print_hello2시작 hello2 print_hello2종료 2018-07-26 15:18:16.128121 None ------------------------------- 2018-07-26 15:18:16.128121 hello3 20.. 2018. 9. 7.
[python] 셔뱅(Shebang)을 이용하여 파이썬 실행 버전 지정하기 여러개의 파이썬 모듈이 설치된 시스템에서 파이썬을 실행하는 버전을 지정해야 하는 경우에 선택할 수 있는 방법은 두가지가 있다. 하나는 실행시점에 파이썬의 버전을 명시하는 방법이다. > python2.7 run_script.py> python3.7 run_script.py 다른 방법은 스크립트의 셔뱅을 이용하는 방법이다. 유닉스 계열에서 작성한 스크립트의 셔뱅에 파이썬의 버전을 지정하면 실행 시점에 자동으로 선택해 준다. #!/usr/bin/env python2.7 #!/usr/bin/env python3.6 > ./run_script.py 셔뱅에 파이썬 버전을 지정하면 다른 서버에서도 동일한 환경으로 동작한다. https://en.wikipedia.org/wiki/Shebang_%28Unix%29#Por.. 2018. 8. 8.