python 3.10 환경에 분석을 위한 다양한 라이브러리를 구성하다보니 호환성 문제로 아래와 같은 문제가 밸생했다. 1. 오류내용크게보면 여러 라이브러리에서 아래와 같은 문제가 발생했다. 사실 처음에는 다양한 라이브러리를 한번에 설치해서 원인을 찾기 힘들었는데 하나식 역추적하며 결국 해결방법을 찾았다. 1.1 numpy 버전 문제 오류A module that was compiled using NumPy 1.x cannot be run inNumPy 2.0.2 as it may crash. To support both 1.x and 2.xversions of NumPy, modules must be compiled with NumPy 2.0.Some module may need to rebuild ins..
ipython 의 매직명령어 표현이 아닌 python 코드로 사용하는 방법이 필요한 경우를 알려주고자 한다.참고로 %sql 표현으로 사용가능한 방법은 아래 링크에 정리해 두었다.https://ngela.tistory.com/170 python 코드로 duckdb 에서 읽기minio 기반의 s3 환경에 접근할때는 아래와 같이 ENTRYPOINT 변경이 필요하다. 그 이외에는 특별히 다를게 없다, 아래와 같이 정보를 set 명령을 통해 선언하는게 가능하다.# duckdb 와 연계하여 실행import duckdb# duckdb connectionconn = duckdb.connect()# Set the necessary S3 configurationsconn.execute("SET s3_region = 'us..
python 에서 pip 로 빌드할때 필요한 모듈이 꽤 존재한다. 그래서 아예 자주 쓰는 케이스의 모듈은 아래와 같이 미리 설치하고 생각하면 좀더 편하다 -_- sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel python-devel python3-devel gcc-c++ cyrus-sasl-devel -y 그러면 아래와 같은 오류들은 한방에 피할수 있다. 2023.06.05 - [개발/python] - [PIP] fatal error: Python.h: No such file or director 오류 해결 방법 (centos) 2023.06.06 - [개발/python] - [PIP] gcc: error trying to e..
pip install sasl 을 설치하는데 아래와 같은 오류가 발생했다. 이 문제를 해결하려면 gcc-c++ 을 설치하면 해결된다. .... #0 0.969 creating build/temp.linux-aarch64-2.7 #0 0.969 creating build/temp.linux-aarch64-2.7/sasl #0 0.969 gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pi..
PyHive 모듈을 테스트하려고 sasl 모듈을 설치하는데 아래와 같은 오류가 발생했다. 이런 이유가 나는건 Python 라이브러리중 일부는 직접 빌드를 해야하기 때문에 gcc 같은 컴파일도구가 존재해야 하거나, 의존된 c 라이브러리가 있어야 설치되는 경우가 종종 있다. 하지만 여기서 나온 에러는 python devel 패키지가 없기 때문이고 이를 설치해주면 된다. fatal error: Python.h: No such file or directory $ pip install sasl==0.3.1 Collecting sasl==0.3.1 Using cached sasl-0.3.1.tar.gz (44 kB) Preparing metadata (setup.py) ... done Requirement alre..
MySQL 5.x 버전대에서 MySQL 8.x 버전대로 바뀌면서, yum 에서 MySQL 5.x 를 삭제하고, MySQL 8.x 버전을 재설치후 mysql 명령으로 접근이 가능한걸 확인후, airflow db init 을 했더니 아래와 같은 오류가 발생했다. 인터넷에서는 caching_sha2_password 에서 mysql_native_password 로 구성을 바꾸라는게 대부분의 답변이었는데, 나는 내가 dbms 를 설치한게 아니라 담당자한테 인스턴스만 제공받고 root 권한이 없는 상황이라 인프라 환경을 바꾸지 않고 해결가능한 방법이 있는지 삽질을 했고 결국은 그 원인을 찾아냈다. (py3) bash-4.2$ airflow db init [2023-04-25 11:03:35,548] {setting..
airflow.cfg 의 dbms 연결설정의 경우 아래와 같은 패턴으로 입력을 해야하는데, 문제는 암호에 @ 가 존재해서 도메인을 잘못 판단하는 문제가 발생했다. 구글링 해보면 python 코드를 통해 해결하거나, "@" 를 "%40" 형태로 치환하면 된다고 하는데, 그렇게 해결이 안되었다. 그 문제는 configparser 에서 "%" 가 또 영향을 받기 때문이었다. sql_alchemy_conn = mysql+mysqldb://:@:/airflow_db?charset=utf8 해결방법 결론부터 말하면 @ 는 %%40 으로 대체해야 설정이 정상적으로 인지된다. urllib 의 quote 로 변환한 결과가 %40 인데, configparser 에서는 또 % 를 추가로 이스케입해줘야 하는 문제가 있기 때문..
개요 가끔 개발서버에서 설정파일이나 오류메시지 로그를 복사해오고 싶은 경우가 있다. 그럴때 가장 손쉽게 사용할 수 있는건, python의 SimpleHTTPServer 를 쓰면 정말 쉽게 복사 해올수 있다. 이게 의외로 유용한게 linux 서버에 python 이 왠만하면 기본 설치 되어있다보니 리눅스 서버의 파일을 급하게 복사해올 때 매우 유용하다. (심지어 포트도 지정가능하고) python -m SimpleHTTPServer [port] 보통 장애났을때 관련된 전체 로그를 메일로 전달해주거나, 딴 서버에 동일하게 세팅해야해서 설정파일을 복사하거나 할 때 의외로 유용하게 사용했다. (윈도우도 python이 설치되면 사용가능하다) 사용방법 예시 사용법은 아주 쉽다. 복사할 파일이 있는 폴더로 이동하고, "..