본문 바로가기

Python64

[intellij] python 프로젝트 생성 시 AttributeError: module 'virtualenv.create.via_global_ref.builtin.cpython.mac_os' has no attribute 'CPython2macOsArmFramework' 오류 갑자기 인텔리 j 에서 파이썬 프로젝트를 생성할 때 venv 를 선택하면 다음과 같은 오류가 발생하였습니다. Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code exec(code, run_globals) File "/Users/logan.. 2024. 2. 7.
[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.
[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] json.decoder.JSONDecodeError: Expecting value: line 3 column 27 (char 95) 오류 json 형식의 문자열을 json 으로 파싱할 때 다음과 같은 오류가 발생하는 경우가 있습니다 . File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/Library/Frameworks/Python.framework/.. 2023. 6. 30.
[intellij] python 모듈에 패스(PYTHONPATH) 추가 하는 방법 파이썬 모듈을 개발할 때 form, import 문의 기준이 되는 위치를 PYTHONPATH로 잡아야 하는 경우가 있습니다. 이럴때는 다음의 위치에 경로를 추가 해주면 됩니다. 모듈 설정 > 프로젝트 설정 > 모듈 > + 버튼 > JAR 또는 디렉토리 에서 원하는 디렉토리를 추가후 진행하면 됩니다. 2023. 6. 3.
[jupyter] 우분투 20에 쥬피터 노트북 설치 및 pyspark 연동 하기 spark 2.4.6 과 쥬피터 노트북을 연동하여 pyspark 를 실행하는 방법을 알아보겠습니다. 주의 사항 spark 2.4.6은 파이썬 3.8 버전 이상을 지원하지 않습니다. 우분투 20 이상은 파이썬 3.8 버전이 기본 설치 되어 있어서 파이썬 3.6이나 3.7을 설치하고 연동하여야 합니다. 쥬피터 노트북은 사용하고자 하는 파이썬 버전의 pip로 설치하여야 합니다. apt를 이용하여 쥬피터 노트북을 설치하면 우분투의 기본 파이썬 버전에 설치 됩니다. 우분투 20기준 파이썬 3.8에 설치 됩니다. 설치 방법 파이썬 3.6 버전 설치. 우분투 20기준 소스를 빌드해서 설치 해야 함 쥬피터 노트북 설치 pip로 설치 ipython 커널 설치 ipython 커널을 설치해야 노트북에서 이용 가능 스파크 파.. 2023. 3. 21.
[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.
[ubuntu] python 빌드 하는 방법 jupyter를 설치하기 위해서 ubuntu 20에서 파이썬 3.6 버전을 설치해야 하는 경우가 있어서 python 빌드 방법을 정리합니다. 우분투 20은 파이썬 3.8 버전이 기본 설치 되어 있습니다. 파이썬 3.6 버전을 사용하기 위해서는 소스를 다운 받아서 빌드해야 합니다. 주의 사항 설치할 때 make install 을 절대 사용하면 안됩니다. 기존에 설치된 파이썬 3.8과 중복되어 기본 적인 명령(ex: apt)이 실행되지 않을 수 있습니다. sudo update-alternatives 명령을 사용해서 기본 파이썬 명령을 변경할 때도 동일한 결과가 발생할 수 있습니다. 되도록 심링크등을 이용해서 설정하는 것이 좋습니다. apt 로 설치하는 라이브러리도 함께 설치 하고 빌드 하는 것이 좋습니다. .. 2023. 3. 21.
[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.
[mysql] Incorrect string value: '\\xF0\\x9F\\x86\\x97' 에러 처리 mysql에 이모지를 입력할 때 다음과 같은 오류가 발생할 수 있습니다. 원인은 mysql이 해당 이미지의 문자값을 지원하지 않을 때 발생합니다. MySQLdb._exceptions.OperationalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x86\\x97 K...' for column 'source_code' at row 1") 해결방법 두 가지 해결방법이 있습니다. 하나는 mysql을 mariadb로 변경하거나, 문자열 설정을 변경하는 것이고, 다른 방법은 이미지를 다른 이모지로 변경하는 것입니다. 🆗 이 이모지는 입력되지 않았지만, ❌ 이모지는 입력되었습니다. 입력이 가능한 비슷한 형태의 이모지를 입력하면 됩니다. my.cnf를 다음과 같이 수정.. 2022. 5. 2.
[hue] hue 빌드 시 파이썬 pip 호출에 프록시를 이용해야 하는 경우 Hue 4.10.0 버전을 빌드 할 때 make 명령을 실행하면 내부적으로 pip를 호출하여 필요한 파일을 설치하는데 프록시 설정으로 인해서 Connection Time Out이 발생하면서 빌드에 실패하는 경우가 있습니다. 이때는 make 명령을 사용하기전에 pip 프록시가 사용하는 프록시 설정을 알려준 후 사용하면 됩니다. export PYTHON_VER=python2.7 sudo http_proxy=http://http-proxy:8080 https_proxy=http://http-proxy:8080 PREFIX=/opt make install 2022. 4. 23.
[spark] pyspark 의 파이썬 패스 설정 pyspark 를 실행하는 서버와 실제 작업을 실행하는 YARN 클러스터의 파이썬 패스가 다를 경우 실행하는 파이썬 패스(PYSPARK_PYTHON)를 드라이버, 워커, 실행서버 별로 설정을 해야 합니다. 파이썬 패스 설정 2022. 3. 7.
[ubuntu] df와 du의 용량 차이 df로 용량을 확인할 때는 사용량이 많은데 du로 확인할 때는 용량이 남는 경우가 있습니다. 이럴때는 lsof | grep delted 명령으로 사용중인 파일중 삭제할 스왑파일을 찾아보면 다음과 같이 VI 프로세스가 남아서 스왑파일이 남는 파일을 삭제 해주면 됩니다. # df로 확인할 때는 사용량이 291G 사용 $ df -h Filesystem Size Used Avail Use% Mounted on udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 7.3M 1.6G 1% /run /dev/sda2 440G 291G 132G 69% / tmpfs 7.8G 64K 7.8G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.8G 0 7.8G 0% /s.. 2022. 1. 25.
[avro] python avro api 에서 The datum XX is not an example of the schema 오류 python을 이용한 avro 기본 api 에서 The datum XX is not an example of the schema 오류가 발생하는 경우가 있습니다. Traceback (most recent call last): File "test.py", line 77, in bytes_data = quickstart_schema.encode(sample_data) File "test.py", line 41, in encode self._writer.write(data, encoder) File "/home/deploy/.local/lib/python2.7/site-packages/avro/io.py", line 979, in write raise AvroTypeException(self.writers_s.. 2021. 7. 13.
[avro] 파이썬을 이용한 avro 예제 파이썬을 이용한 avro를 이용하기 전에 pip를 이용해서 먼저 설치해야 합니다. pip3 install avro 파이썬을 이용한 avro 예제는 다음과 같이 구현합니다. 오류 처리 파이썬2에서는 다음과 같은 오류가 발생할 수 있습니다. 파이썬 3로 실행하면 다음 오류는 해결됩니다. Traceback (most recent call last): File "a.py", line 8, in writer.append({"name": "Alyssa", "favorite_number": 256}) File "/home/deploy/.local/lib/python2.7/site-packages/avro/datafile.py", line 227, in append self.datum_writer.write(datum.. 2021. 7. 7.
[python] 우분투에 파이썬 3.7 설치 우분투(ubuntu)에 파이썬 특정 버전을 설치 하는 방법입니다. 우분투는 apt를 이용해 파이썬을 설치할 수 있습니다. 하지만 특정 버전을 설치 하기 위해서는 파이썬 홈페이지에서 binary 파일을 다운받아서 빌드하면 됩니다. 2021. 5. 27.
[pyspark] pyspark 실행시 python: command not found 오류 pyspark 쉘을 실행하는 시점에 python 커맨드를 찾지 못한다는 오류가 발생하면 원인은 두 가지로 생각할 수 있습니다. 파이썬을 설치 하지 않음 파이썬을 설치 한다. 파이썬을 설치 했지만 python 명령이 아니라 python3나 python3.7 등의 버전명으로 명령어가 생성 PYSPARK_PYTHON 환경변수를 설정 2021. 3. 18.
[python] pymysql 을 이용하여 db insert, update, select 하기 파이썬에서 MySQL이나 MariaDB를 이용할 때는 pymysql 라이브러리를 이용합니다. pip를 이용하여 라이브러리를 먼저 설치하고 다음의 예제를 이용하면 됩니다. pymysql 설치 pip install PyMySQL execute vs executemany execute는 단발성 입력 executemany는 배치 잡을 처리 dict 형으로 데이터를 입력할 때 DB의 키워드(예약어) 데이터가 있으면 오류가 발생함. 2020. 12. 28.
[Hue] 빌드 중 ValueError: bad marshal data (unknown type code) 오류 해결 방법 문제 Hue를 빌드할 때 다음의 오류가 발생할 수 있습니다. 컴파일 된 pyc 파일과 실행환경의 파이선 버전이 달라서 데이터를 읽을 수 없을 때 발생하는 오류입니다. ValueError: bad marshal data (unknown type code) 해결 방법 Hue를 빌드 할 때. 파이선3의 환경으로 설정하라고 되어 있었지만 장고 모듈을 빌드하는 과정에서 해당 오류가 발생하여 파이썬2로 빌드하여 문제를 해결할 수 있었습니다. export PYTHON_VER=python2.7 해당 오류는 pyc 파일을 삭제하고 실행 환경의 파이썬으로 다시 빌드하면 해결할 수 있습니다. find . -name "*.pyc" 참고 marshal을 이용해서 파일을 읽는 방법은 다음과 같습니다. import marshal .. 2020. 10. 5.
[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] 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.
[Intellij] No Python interpreter configured for the module 오류 해결 IntelliJ에서 github를 이용해서 파이썬 프로젝트를 가져오면 파이썬 인터프리터 설정이 없어서 오류가 발생할 수 있습니다. 이때는 파이썬 인터프리터를 설정해서 문제를 해결할 수 있습니다. 먼저 프로젝트 설정을 열어봅니다. 그리고 파이썬 인터프리터를 선택합니다. 다음과 같이 Project Settings → Modules 에서 파이썬 인터프리터를 선택하면 됩니다. 2019. 7. 17.
[python] 우지 웹서비스 API 라이브러리 소개 우지(oozie) 웹서비스를 이용하기 위한 파이썬 라이브러리를 소개 합니다. pip를 이용해서 설치하고 사용할 수 있습니다. 설치 방법과 사용방법은 다음과 같습니다. 설치 방법 pip install oozie-webservice-api 사용방법 2019. 7. 10.
[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.
[vscode] vscode에서 파이썬 인터프리터의 버전 선택 로컬에 여러버전의 파이썬 컴파일러가 설치 되어 있을 때 실행하는 파이썬 인터프리터의 버전을 선택해야 할 때가 있습니다. 이때는 커맨드 팔레트(F1 or Ctrl + Shift + P)를 열어서 'Pythton: Select Interpreter'를 선택하고 사용하고자 하는 파이썬 버전을 선택하면 됩니다. 2019. 5. 2.
[python] 파이썬 상속과 __init__ 을 이용한 부모 호출 예제 파이썬 상속과 메소드 오버라이딩을 이용하여 메소드를 새로 만드는 예제입니다. 2019. 3. 2.