본문 바로가기

githook으로 python 기본적인 컨벤션 맞추기 많이들 적용하는 방식이죠. githook으로 기본적인 회사 컨벤션 맞추는 방법 정리해봅니다. 깃폴더로 이동해서 하위에 있는 .git/hooks 폴더에 가보면 여러 샘플 파일들이 있는데요. pre-commit을 통해서 commit 이전에 무언가를 수행하도록 할 수 있는데요. pre-commit.sample 파일을 직접 수정하시는 것도 되고요. 이번에는 pre-commit 라이브러리를 설치해서 적용하는 방법을 소개해드립니다. 일단 pre-commit을 설치해주세요. 가상환경에서 아래 명령어로 설치가 가능합니다. pip install pre-commit pre-commit에서 적용해보고 싶은 것은 pylint인데요. 이걸 어떻게 적용하기 위해서는 프로젝트 폴더에 .pre-commit-config.yaml 파일.. 더보기
selenium python - 에러 날 때 한 번 쯤 해보면 좋을 시도 selenium python - 에러 날 때 한 번 쯤 해보면 좋을 시도 에러의 종류에 따라서 달라지겠지만 xpath 혹은 name, class 등으로 elements를 찾아 클릭하는 것을 시도했을 때 에러가 난다면 2가지를 볼 것 같아요. 1 . modal이 띄워져 있어서 해당 elements를 찾았지만 클릭이 안된다. >> 요건 이전 포스팅에 작성해뒀는데 한 번 확인해보세요. modal을 display:none 시키면 됩니다. >> 2019/08/25 - selenium python - Other element would receive the click 2. element를 못찾는다. >> 코드가 실행될 때 selenium이 해당 페이지를 모두 로드하지 못하는 경우도 있는 것 같으니까 time.sle.. 더보기
selenium python - Other element would receive the click selenium python - Other element would receive the click selenium으로 어떤 버튼을 클릭하도록 했는데 Other element would receive the click 에러가 난다면 혹시 modal이 앞으로 나와있는지 확인해보시면 좋을 것 같아요. modal이 나와있으면 뒤에 있는 것들이 클릭 안되는 상황일지도요 ! 간단하게 modal을 없애 버리면 되는데 display:none을 활용하시며 됩니다. 예를 들어서 modal의 id가 modal_aabbcc 인 경우에 아래와 같은 코드로 modal을 사라지게 할 수 있습니다. driver.execute_script("document.getElementById('modal_aabbcc').style.displ.. 더보기
깃 브랜치 이름 출력하기 - git, fabric, local, print Git Branch Name Print 자동으로 무언가를 수행하려고 할 때 저는 git branch 네임을 활용하는 경우가 종종 있는데요. 예를 들어서 깃 브랜치 네임에 release 가 포함되지 않았는데 무언가 배포하는 행동을 하지 못하게 한다거나. 브랜치 네임으로 실행해야 하는 함수들을 다르게 한다거나 등등이 있습니다. 물론 제가 사용하는거지 보편적인 방법은 아닌 것 같습니다. 암튼 어떤 이유들 git branch name이 필요하시면 아래 명령어로 가져오실 수 있습니다. git rev-parse --abbrev-ref HEAD fabric에서 local로 위 명령어를 실행하고 값을 가지고 오기 위해서는 아래와 같이 capture 변수를 추가되면 됩니다. local('git rev-parse --ab.. 더보기
crontab, mac, python, virtualenv 맥 환경에서 crontab 사용하는 방법에 대해서 간단하게 정리합니다. -crontab 편집 : crontab -e crontab 확인 : crontab -l -crontab 작성 방법은 동일합니다.제가 예전에 몇 개 포스팅을 한 적이 있는데요. 작성 방법은 그것으로 대신합니다. 2017/05/06 - crontab : daily, weekly, monthly example 2015/01/13 - Ubuntu Crontab -python 코드를 실행할 때 virtualenv 환경을 사용해야 하는 경우는 source 부터 해줘야 합니다. 아래와 같이 말이죠. 00 11 * * * source /Users/aa/venv/bin/activate && /Users/aa/venv/bin/python python_.. 더보기
atom installed packages / themes 제가 사용하고 있는 atom packages를 작성해두려고 합니다. 언제 또 개발 환경이 변경되고 atom을 다시 설치해야 하는 상황이 발생할지 몰라서요. atom-beautify 는 여러 파일의 indent를 맞추는데 사용하고 있어요. atom-ternjs 는 아마도 javascript autocomplete 를 위해서 사용하고요. autoclose-html 은 html 작성할 때 close tag를 제공하기 때문에 쓰고 있어요. autocomplete-python 은 이름 그대로 입니다 :) file-icons 는 atom의 밋밋한 파일 표현을 진짜 이쁘게 바꿔줘요. 꽤 맘에 들어요. multi-cursor 는 여러 줄을 한 번에 편집할 수 있어서 좋아요. highlight-selected 는 선택한.. 더보기
Python, psycopg2 : INSERT INTO .... Geometry SQL 이번 포스팅은 바로 전 포스팅에서 Geometry를 입력하는 방법만 추가한 것입니다. 참고 ... Python, psycopg2 : INSERT INTO .... SQL - http://ngee.tistory.com/638 일단 사용되는 테이블은 아래 사진과 같습니다. 일단 geometry 컬럼을 생성하는 것이나, SQL문을 통해서 입력하는 것은 이전 포스팅들에서 다룬 적이 있습니다. 관련 포스팅 PostGIS : PostGIS Setting Script : http://ngee.tistory.com/629 PostGIS : Create Geospatial Table : http://ngee.tistory.com/631 PostGIS : Insert Geospatial Data into Table : h.. 더보기
Python, psycopg2 : INSERT INTO .... SQL PostgreSQL의 adapter 중에 python을 지원해주는 psycopg2 라는 녀석이 존재합니다. 예전 글들을 찾아보니 psycopg2에 관련 된 몇 개의 포스팅이 있긴한데요. insert into sql에 대해서는 제대로 정리해둔 것이 없어서.. 일단 다시 psycopg2에 대해서 기본적인 정보에 대해서 정리해보면 다음과 같습니다. 1. psycopg2 document : http://pythonhosted.org//psycopg2/ 2. License : LGPL 3. github : https://github.com/psycopg/psycopg2 4. Project Homepage : http://initd.org/psycopg/ 이번 포스팅에서는 psycopg2로 insert into s.. 더보기
pyproj : transform pyproj를 통해 파이썬에서 소스코드 단에서 여러 좌표계를 사용할 수 있습니다. transform 함수에 대해서 정리해둡니다. http://jswhit.github.io/pyproj/ 노란색으로 표시한 부분을 보시면 transform은 최소 4개의 인자를 받구요. 최소 2개의 값을 return 해줍니다. 변환한 x, y 인거죠. p1은 입력 좌표의 좌표계이고, p2는 변환할 좌표계를 의미합니다. x, y는 좌표구요. 아래 예제를 통해서 확인해보면 쉽게 이해가 됩니다. p3857 = pyproj.Proj(init='epsg:3857') p4326 = pyproj.Proj(init='epsg:4326') tx, ty = pyproj.transform(p3857, p4326, x, y) p3857 변수에 e.. 더보기
리눅스에서 드롭박스로 백업 (Save file to Dropbox) 리눅스에서 작업한 폴더를 압축해서 내 드롭박스에 추가하는 간단한 스크립트를 작성해보려구요. 저는 주로 웹과 관련된 것을 작업하고, 파일 용량이 크지 않아서 주로 드롭박스에 백업해두곤 합니다. 간단하게 하기 위해서 스크립트를 작성해서 사용하는데요. backup.py 스크립트의 내용은 다음과 같습니다. 1 import os 2 3 os.system("tar -czvf ./project_2014_0301.tar.gz /var/www/project") 4 os.system("scp project_2014_0301.tar.gz username@server_ip_address:/home/username/Dropbox/") 위 소스를 보시면 3번째 줄에서 tar로 특정 폴더를 압축하고. 4번째 줄에서 scp로 드롭박.. 더보기
GDAL : gdal 컴파일 설치 시 postgresql 연결 gdal 컴파일 설치 시 postgresql 연결하려면 일단 postgresql 설치 & postgresql.dev도 설치해주시고. gdal configure 시에 ./configure --with-postgresql 을 써줘야 한다. :) gdal 컴파일 설치 시 python과 연결하려면 일단 python 설치 & python.dev 설치해주시고 gdal configure 시에 ./configure --with-python 을 써줘야 한다. :) 더보기
pip 활용하기 우분투에서 python과 관련된 라이브러리, 프로그램들을 어떻게 설치하시나요? 아직도 apt-get 을 사용하시나요? ㅎ 아니면 소스코드를 다운받아서 python setup.py build, python setup.py install을 사용하시나요? 저도 얼마전까지는 위와 같은 방법이 편하니깐, 그냥 해왔는데요. pip라는 것을 알고, 사용해보니 너무나 편리해서 이렇게 추천하고자 포스팅 간단하게 합니다. pip는 python 홈페이지에서 A tool for installing and managing Python packages. 라고 소개하고 있네요. 좋은 툴입니다. 먼저 pip는 apt-get install로 설치해주시면 되겠습니다. pip는요 apt-cache search로 찾아서 설치하는 것보다 더.. 더보기
GDAL : gdal module을 못찾을때 & lib & python & ln ========== 환경 ============ OS : Linux Fedora 14 =========================== 1. /etc/ld.so.conf 확인 만약에 빌드를 통해서 gdal을 설치한 경우 ./configure 의 인자를 조정하지 않는이상 디폴트로 /usr/local/lib으로 간다. 따라서 /etc/ld.so.conf에 /usr/local/lib을 추가하고 ldconfig 라는 명령으로 한번 잡아준다. 2. 심볼릭 링크 이용하기 /usr/local/lib에 있는 라이브러리 파일들을 /usr/lib에 단순하게 복사하는 것으로 당장 문제를 해결할 수도 있지만.. /usr/lib에 심볼릭 링크를 생성하는 것이 향후 문제를 막는데 도움이 되는 것 같다. 심볼릭 링크 사용 방법 l.. 더보기