레이블이 python인 게시물을 표시합니다. 모든 게시물 표시
레이블이 python인 게시물을 표시합니다. 모든 게시물 표시

2016년 5월 15일 일요일

vim으로 IDE같은 기분 내기~~

VIM으로 IDE같은 기분내기

YouCompleteMe & NERDTree

일을 하다보면 텍스트 에디팅과 파일관리등의 업무를 하다보면 키보드와 마우스를 번갈아 쓰게되고 업무의 집중력도 저하되고 일의효율도 떨어지는 느낌을 지울수 없다.

command 창에서 파일 오퍼레이팅을 하고 코딩은 Pycharm 혹은 Visual Studio에서 작업을 하다보면 생기는 자연스러운 어쩌면 부자연스러운 일이다.

그러다가 알게된 vi란 녀석은 그동안 참 계륵이었다. Command창에서 파일오퍼레이팅을 하고 vi로 바로 텍스트 에디팅을 할수 있어서 참 좋다고 생각했다. 하지만 문제는 IDE에 비해서 코딩을 하는데 너무 불편하다. 자동완성, 파일익스플로러 등의 기능이 지원되지 않으니...

어느날 검색중에 발견한 YouCompleMe 와 NERDTree란 두 녀석이다.

1. 일단 가장 먼저 소개하고 싶은것은 vimawesome(빔간지...정도인가)이다. vim에서 사용할수 있는Plugin들의 리스트와 설명들을 모아놓은 사이트이다.
vimawesome


2.  IDE의 자동완성, GoTo 기능이 부럽다면 YouCompleteMe가 꼭 필요하다.
YouCompleteMe

3. File Navigation 기능이 필요하다면 NERDTree가 최고다.
NERDTree

위의 내용들은 사실 *NIX 에서 개발하는 개발자분들에게는 위 내용은 그냥 기본일 수도 있다.

하지만 Windows에서라면 전혀 다른 애기가 될수도 있다. 단순히
apt-get install package name

이렇게 끝나지 않아서 문제다 ㅠㅠ

설치방법

설치방법은 홈페이지에 잘나와있다. 이걸 쓸려고 포스팅중은 아니다. 핵심 내용은 아래에 있다.

지금부터 삽질한 썰을 풀어보겠다.

1. %USERPROFILE%, %HOME% 이게 멀까?

YouCompleteMe를 설치하는 메뉴얼을 읽어보면 Vundle을 설치하라고 한다.
Vundle을 설치하다보면 %USERPROFILE%, %HOME% 이게 멀까? 하는 생각이든다.

vim 의 path관련 변수이다.
%USERPROFILE% : 보통여기다 C:\Users\user ...사람들 pc마다 다를수 있다. 궁금하면

Command창에서 쳐보면 된다.
>%USERPROFILE%

%HOME% : vim 을 설치하면서 path에 추가 할까요? 할때 등록이 되는 변수다. 이것도 마찬가지로 궁금하면 커멘드창에 쳐보면 된다.

먼기 기본도 몰랐던 느낌...ㅠㅠ

2. vim이 python을 지원하지 않는다. 

이거는 정말 큰 문제라고 생각된거 중 하나다.
검사하는 방법은
vim실행후
:echo has('python')
이라는 명령어를 실행하면
지원하지 않는 경우 '0', 지원하는 경우 '1' 이라는 값으로 리턴된다.

이문제는 정말 어렵게 해결했다. 아래 링크를 타고 가면 할수 있다.
https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0ahUKEwiYn4eJr9zMAhVBuI8KHWP2B5EQFggoMAE&url=http%3A%2F%2Fvim.wikia.com%2Fwiki%2FBuild_Python-enabled_Vim_on_Windows_with_MinGW&usg=AFQjCNHLoZak-u7wNCREzpX13XMEyOoTiQ&sig2=Un70EqzMmklLPMIuZP5DSw&bvm=bv.122129774,d.c2I&cad=rjt

하지만 설치 메뉴얼을 천천히 읽었으면 이런 문구를 읽었을텐데...

We recommend using a 64-bit client. Daily updated copies of 32-bit and 64-bit Vim with Python 2 and Python 3 support are available.

3. python27.dll, python34.dll 니네 어디 갔냐?

파이썬 설치하면 자동으로 각각의 dll이 시스템폴더에 잘 들어 간다. 삽질을 하다보니 꼬여서 python27.dll이 없어졌다. 일반 설치파일을 이용해서 Uninstall 후 다시 install을 하였지만 인스톨 자체가 꼬였다. 그래서 Anaconda를 깔아 버렸다. 이건 참 안정적으로 잘깔리고 conda하는 패키지 업데이트가 안정적인 업데이트를 지원한다. pip랑 비슷한 역할을 담당하고 있다.
하지만 pip의 특성상 윈도우 패키지를 딱 맞춰주지 않기 때문에 conda가 참 좋은 녀석이라고 생각된다.



인제 잘써야지 마지막으로 vim +  YouCompleteMe + NERDTree 설치 인증샷이나 하나 남겨야지~~~~

2014년 8월 4일 월요일

Celery 시작하기

분산처리환경, Grid Computing, Message Queue

세가지 개념이 아직 구분이 가질 않습니다. 어린아이가 세상을 다 알지 못하듯이 저 또한 저 세개의 개념을 알지 못하는것이겠습니다.

일단 목표는 정해져 있습니다. 서버에서 마스터 메시지큐 서버를 구축하고 워커를 구축하고 그들의 움직임을 통제하는것입니다.

그것을 위해서 저는 celery를 선택하였습니다. 다른 이유는 없고 python 홈페이지에서 분산컴퓨팅을 위한 패키지라고 설명을 해주었기때문입니다.

일단 설치를 하려고 합니다.

홈페이지 입니다.

http://www.celeryproject.org/

내용을 읽다보니 Broker가 있어야 한다네요 rabbitmq를 설치하라고 합니다.

설치합니다.

http://www.rabbitmq.com/

RabbitMQ를 이용하기 위해서는 erlang을 설치하라고 하네요 .... 올해 초 회사 동료가 공부하자고 해서 책도 사서 읽었던 얼랭이니 ... 설치에는 무리가 없죠 ㅎ

http://www.erlang.org/

역으로 얼랭을 설치하고 rabbitMQ를 설치 후 rabbitMQ에서의 예제인 "Hello world!!" 를 구성합니다.

언어는 파이썬으로 하고

http://www.rabbitmq.com/tutorials/tutorial-one-python.html

rabbitMQ Library인 pika를 이용하기로 합니다.

pika를 설치하는 방법이 여러가지 있다고 하는데 ... pip를 이용한다고 합니다.

예제를 하나 실행하는데도 여정이 깁니다.

https://pypi.python.org/pypi/setuptools

파이썬 링크를 들어가는것 보면 파이썬이 깔려 있어야 하는것 같습니다. 없으시면 파이썬 깔고오세요 ~~~

pip를 깔면 rabbitMQ Tutorial 에서 보이는 pika를 설치할수 있습니다. 현재의 싸이트는 이전 피카버젼을 명시하고 있으므로 피카의 버젼은 그냥 무시하시면 최신버젼이 깔리는것 같습니다.

자 이제 pika를 깔았으면

tutorial을 진행합니다.

내용자체가 tutorial만 보시더라도 알 수 있는 내용이므로 패스

단, 사실 저는 저 tutorial을 성공하기까지 정말 오랜 시간이 걸렸습니다. 아무리 서버를 올려도 에러메시지가 떨어지더라구요... 그래서 에러메시지를 분석한 결과 제가 호스트 네임 부분이 이상하게 들어가고 있다는것을 알았고 그 호스트 네임은 컴퓨터 이름을 이용한다는 사실도 알았습니다. 만일 당신의 컴퓨터이름이 한글이라면 당장 영어로 바꾸세요. 특수문자도 빼시는게 좋겠습니다.

그럼 rabbitMQ를 이용하여 no more faster~~

아 ... Celery 는 가지도 못했네요... 곧가겠죠 ㅎㅎ


2014년 5월 19일 월요일

python pakage website

1. IPython

http://ipython.org/

2. Numpy 다차원 배열에서의 고성능의 벡터연산을 위한 페키지

http://www.numpy.org/

3. Scipy 진보된 수치적 알고리즘

http://www.scipy.org/

3. Matplotlib

http://matplotlib.org/

4. Matplotlib-basemap mapping tool box for Matplotlib

http://matplotlib.org/basemap/

5. NetworkX

http://networkx.lanl.gov

6. Pandas

http://pandas.pydata.org

7. Python Imaging Library(PIL)

http://pythonware.com/products/pil

8. Cython

http://cython.org