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 등을 들수 있는데 이들은 지속적인 배포 뿐만 아니라 시스템과 소프트웨어를 통합해 플랫폼으로서 수많은 서버들의 상태를 동일하게 유지시켜준다. 그런데 몇 해전만 해도 이런것들이 부족했던 시절이 있었는데, 이때 내가 다니던 직장에서 수천대의 서버를 관리해야하는 일이였다. 이러한 소프트웨어가 없던 시절에 나는 개인적으로 이와 비슷한 것을 만들어 사용했는데 그때 당시로 돌아가 어떤 생각으로 만들었었는지 개선했는지를 정리해보고자 한다. […]
Thread
이 문서는 Perl Thread 문서를 기반으로 작성되었습니다. Thread 의 기초부터해서 Thread의 구현을 Perl, Python 으로 직접 구현해보고 비교하도록 하겠습니다. 출처: http://www.xav.com/perl/lib/Pod/perlthrtut.html Thread? 쓰레드(Thread)는 프로세스(Process)보다 작은 프로그램 단위 입니다. 좀 더 정확하게 말하자면 프로그램은 적어도 한개의 프로세스로 구성되며 적어도 하나의 쓰레드로 구성됩니다. 적어도 하나의 프로세스에서 하나의 쓰레드는 결국 하나의 실행 포인트를 가집니다. 적어도 하나의 프로세스내에서 다중 쓰레드를 쓴다는 것은 결국 다중의 실행 포인트를 가진다는 것을 의미 합니다. 다중의 실행 포인트? 요즘에 멀티코어(Multi Core) CPU가 많이 나옵니다. 프로그램은 이 멀티코어 CPU에 의해서 실행되는데 […]
Python 3 설치
Python 3 설치. 현재 Python 2.x 버전이 2019년까지 수면을 연장했지만 이미 많은 모듈들이 2.x 버전에서 개발이 중단되거나 Python 3.x 를 지원하기 시작했다. 앞으로는 Python 2.x 를 개발하더라도 Python 3.x 와 호환을 고려해서 작성해야 한다. 1. Downloads and Unpack 다운로드는 Python 홈페이지에서 받는다.
1 2 3 |
wget https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz tar xvzf Python-3.4.1.tgz -C /usr/src |
2. Configure and Compile and Install
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
export LDFLAGS=-L/usr/lib64 export LINKCC="gcc" if pkg-config openssl ; then export CFLAGS="$CFLAGS `pkg-config --cflags openssl`" export LDFLAGS="$LDFLAGS `pkg-config --libs-only-L openssl`" fi export CHOST="x86_64-pc-linux-gnu" export CC=gcc ./configure --prefix=/usr/local/python3 --enable-shared --with-system-expat --with-signal-module --with-threads make make install |
3. 후속작업 설치한 후에 python3 을 실행하면 다음과 같이 실행이되지 않는다.
1 2 |
/usr/local/python3/bin/python3 /usr/local/python3/bin/python3: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory |
공유라이브러리가 없기 때문에 나타나는 현상으로 다음과 같이 공유라이브러리를 인식시켜준다.
1 2 3 4 |
]# vim /etc/ld.so.conf.d/python3.conf /usr/local/python3/lib ldconfig |