VSCode 는 인기있는 IDE 툴이다. Python 을 위한 기본 세팅을 기록으로 남겨둔다. Shift +Control + P 를 누르면 User Setting(JSON) 을 할 수 있는데, 대략 다음과 같이 설정 한다. 기초적인 세팅이라고 할 수 있다. ruff ruff는 해당 스타일 가이드에 맞지 않은 코드에 대해서 경고를 주거나 코드 변환을 해주는 도구. Rust로 만들어서 성능이 매우 좋다. 거기다 코드 변환까지 지원하기 때문에 Black, Isort 같은 것을 설치하지 않아도 된다. VSCode 에 확장에서 Ruff 를 검색해 설치해준다. mypy Python 정적 검사를 해준다. Python 의 […]
맥(Mac)에 VLLM 설치하기
맥(Mac) 에 VLLM 을 설치에 대한 문서 입니다. 보통 VLLM 은 Nvidia GPU 를 가진 시스템에서 주로 설치하지만 맥에서도 사용할 수 있다. 이때 핵심은 CPU 기반 LLM 이 되도록 설치하는 것이다. Brew 설치 맥(Mac) 에 Brew 를 설치해준다. 이 brew 는 리눅스에 apt, dnf 와 같은 기능을 한다. 맥으로 포팅된 각종 프로그램들을 brew 명령어를 이용해서 설치할 수 있다. 설치만 해주는게 아니라 프로그램 업데이트 추적, 패키지 삭제 등도 함께 제공한다. brew 를 이용해서 Python3.12 를 설치해 준다. Python3.12 설치 brew 를 […]
Tensorflow 설치 오류
Python 의 pip 를 이용해서 Tensorflow 를 설치할때에 다음과 같은 오류가 날 수 있다. 2025년 4월 현재 오류가 발생 했다. 뭐라뭐라 알수 없는 오류가 나오는데, 해결책이 있다. numpy 1.x 버전 호환 문제 Tensorflow 는 현재 numpy 2.x 와 잘 호환되지 않는 것으로 보인다. numpy 는 Pandas 를 설치하면서 함게 설치가 되는 것인데, 이때에 2.x 버전이 설치된다. 따라서 numpy 2.x 를 언인스톨하고 numpy 1.x 로 설치해준다. 이렇게 하고 나서 Tensorflow 도 언인스톨을 하고 재설치 해준다. TF_ENABLE_ONEDNN_OPTS=0 문제. 이 문제는 정확하게는 다음과 […]
CloudWatch Log 총 용량 계산하기
CloudWatch Log 의 총 용량의 사용량을 알아야 얼마 정도 비용이 나가는지를 추정할 수 있다. CloudWatch Log 화면에서 총 용량을 보여주면 고맙겠지만 그런게 없다보니 비용이 얼마정도 나가는지도 모르게된다. Python 을 이용해서 총 용량을 계산해보자. nextToken AWS SDK 를 사용하는데 있어 항상 나오는 것이 nextToken 이다. AWS 는 무제한으로 API Call 을 하도록 허용하지도 않고 결과의 모두를 출력해주지 않는다. 다음을 보자. describe_log_groups 메소드에 인자값으로 limit 가 있다. 이 값은 Default 값이 있다. 문제는 이 인자값을 50 이상을 지정할 수가 없다는 것이다. CloudWatch […]
AWS CDK 개발 환경 구축하기
이 문서는 AWS CDK 개발 환경 구축에 대한 글이다. AWS CDK 는 코드로 AWS 자원을 관리하게 해주는 것으로 Infrastructure As Code 에 부합한다. 이를 사용하기 위해서는 환경 구축이 필수이기에 이를 기록한다. 구축 환경 AWS CDK 는 몇가지 언어를 지원 한다. 나는 Python 을 사용할 것임으로 Python 관련된 설정도 필수다. 그런데, Python 을 사용해보면 알겠지만 Windows 플랫폼 보다는 Unix 스타일의 플랫폼이 적합하다는 것을 알게 된다. 따라서 구축 환경은 다음과 같이 정했다. OS: Mint Linux 19.3 Tricia XFCE Python3 한가지 더 있다. […]
Python – easy_install, pip 설치하는 방법
Python 에서는 easy_install, pip 를 설치하는 방법중에 하나가 ‘get-pip.py’ 스크립트를 이용하는 것인데, 다음과 같다.
|
1 2 |
]# wget https://bootstrap.pypa.io/get-pip.py ]# python3 get-pip.py |
wget, curl 과 같은 프로그램을 이용할 수 없을 경우에 python 프로그램을 이용할 수도 있다. python3 의 경우에는 다음과 같다.
|
1 |
]$ python3 -c "import urllib.request; exec(urllib.request.urlopen('https://bootstrap.pypa.io/get-pip.py').read())" [--user] |
python2 의 경우에는 다음과 같다.
|
1 |
]$ python -c "import urllib2; exec(urllib2.urlopen('https://bootstrap.pypa.io/get-pip.py').read())" [--user] |
한줄짜리 python 프로그램으로 get-pip.py 를 다운받고 설치를 해준다. ‘–user’ 는 사용자 홈 디렉토리를 설치 디렉토리로 삼게 한다.
Python, SaltStack 편집을 위한 vim 세팅
서버를 다루다보면 Python, SaltStack 을 작성해야 하는데 이를 위해서 윈도우즈로 다운로드 받아서 편집기를 열어서 하기가 영 귀찮습니다. 터미널을 이용해기 때문에 vim 를 이용하면 아주 편한데, 이 문서는 Python, SaltStack 편집을 위한 vim 세팅 위한 것입니다. 환경 환경이 중요합니다. 이 문서의 환경은 다음과 같습니다. OS Distro: Ubuntu 16.04 vim version: 7.4 Python Virtualenv: /home/systemv 계정에 Python 가상환경을 만들었으며 여기에 각종 Python 라이브러리가 설치되어 있다. Vundle 플러그인 설치 Vundle 은 vim 플러그인 입니다. 이 플러그인은 vim 의 각종 플러그인을 아주 편하게 설치 […]
Python pip 를 일반계정에 설치하는 방법
시스템을 운영하다 보면 Python 을 많이 사용하게 되는데, 리눅스 시스템의 경우에 기본적으로 Python 이 설치되어 있다. 하지만 pip 는 기본적으로 설치되지 않는데 이것을 설처하기 위해서 리눅스 시스템의 슈퍼유저인 root 사용자 계정을 빌리거나 설치 요청을 하는 경우가 많다. 하지만 일반계정으로 pip 를 사용할 수 있는데 이에 대해 간단히 소개한다. 디렉토리 생성하기 일반계정일 경우에 홈디렉토리에 bin 디렉토리를 생성하고 PATH 쉘 변수를 설정하면 되는데 이럴경우 홈디렉토리에 노출되는데 이를 숨기기 위해서 숨김 디렉토리로 설정한다.
|
1 2 3 |
~$ mkdir -p ~/.local/bin ~$ echo "export PATH=\$PATH:~/.local/bin" >> .bashrc ~$ source .bashrc |
숨김 디렉토리를 생성한 후에 PATH 쉘 변수를 만들고 Bash […]
Python JSON Tool 을 이용한 Readable한 JSON 출력하기.
Python 을 설치하면 JSON Tool 이 포함됩니다. Python JSON Tool 을 이용한 Readable한 JSON 출력이 가능합니다. 즉 쉘 상에서 JSON 포맷을 보기 좋게 볼수 있습니다. 보통은 다음과 같이 출력되서 쉽게 알아보기 힘듭니다.
|
1 2 |
]$ curl http://api.joind.in {"events":"http:\/\/api.joind.in\/v2.1\/events","hot-events":"http:\/\/api.joind.in\/v2.1\/events?filter=hot","upcoming-events":"http:\/\/api.joind.in\/v2.1\/events?filter=upcoming","past-events":"http:\/\/api.joind.in\/v2.1\/events?filter=past","open-cfps":"http:\/\/api.joind.in\/v2.1\/events?filter=cfp"} |
이를 보기 좋게 출력하는 방법은 다음과 같습니다.
|
1 2 3 4 5 6 7 8 |
]$ curl -s http://api.joind.in | python -mjson.tool { "events": "http://api.joind.in/v2.1/events", "hot-events": "http://api.joind.in/v2.1/events?filter=hot", "open-cfps": "http://api.joind.in/v2.1/events?filter=cfp", "past-events": "http://api.joind.in/v2.1/events?filter=past", "upcoming-events": "http://api.joind.in/v2.1/events?filter=upcoming" } |
리모트 스크립트 제작기
DevOps 가 대두되면서 지속적인 배포(Continuous Delivery) 가 핵심으로 떠오르면서 수만은 서버에 한꺼번에 명령어를 내리고 파일을 전송하고 설정파일을 관리하는 소프트웨어가 인기를 끌고 있다. 대표적으로 Chef, Puppet, Saltstack, Ansible 등을 들수 있는데 이들은 지속적인 배포 뿐만 아니라 시스템과 소프트웨어를 통합해 플랫폼으로서 수많은 서버들의 상태를 동일하게 유지시켜준다. 그런데 몇 해전만 해도 이런것들이 부족했던 시절이 있었는데, 이때 내가 다니던 직장에서 수천대의 서버를 관리해야하는 일이였다. 이러한 소프트웨어가 없던 시절에 나는 개인적으로 이와 비슷한 것을 만들어 사용했는데 그때 당시로 돌아가 어떤 생각으로 만들었었는지 개선했는지를 정리해보고자 한다. […]