임베디드 프로그래밍을 하다 보면 레지스터 등의 설정을 2의 보수로 해야 하는 경우가 많이 있습니다. int 값을 2의 보수 헥사값으로 표현하거나 또는 2의 보수 헥사 값으로부터 int 값을 구하는 경우 저는 주로 Python bitstring 모듈을 사용하곤 합니다.

대부분의 파이썬 모듈이 그렇듯이 bitstring 모듈 역시도 pip를 통해 아래와 같이 설치할 수 있습니다.

pip install bitstring

사용은 아래와 같이 bitstring 모듈을 import 를 하고~

from bitstring import Bits

헥사값을 넣어 줍니다.

num = Bits(hex="FFD856")

int 값을 구하기 위해서는 int 멤버 변수 값을 확인하면 되고 아래 예를 보면 -10154 임을 알 수 있습니다.

hex 값을 구하기 위해서는 hex 멤버 변수 값을 확인하면 ffd856 임을 알 수 있고~ bin 값을 구하기 위해서는 bin 멤버 변수 값을 확인하면 "111111111101100001010110' 임을 알 수 있습니다.



아래 포스팅에서 Synology NAS 에 pip 설치하는 방법에 대해 설명한 적이 있는데, 오늘은 Python3 와 pip 를 설치하는 방법에 대해 소개하려 합니다.

http://iamaman.tistory.com/1887

일단 Synology NAS 에 Python3 를 설치하는 방법은 매우 간단합니다. Synology NAS 패키지 센터에서 아래와 같이 Python 으로 검색을 해서 Python3 를 설치하시면 됩니다.

다음으로 pip 를 설치하는 방법은 ssh 로 Synology NAS 에 접속한 다음 아래와 코딩하시면 됩니다.

sudo -i # root 사용자 변경

wget https://bootstrap.pypa.io/get-pip.py # get-pip.py 다운로드

python3 get-pip.py # pip 설치

python3 -m pip install requests # requests 설치

python3 -m pip install selenium # selenium 설치

su - 유저명   # 사용자 변경



요즘 웹 서핑을 하다 보면 Javascript 로 된 괜찮은 소스코드들이 눈에 띄더군요.


이런 Javascript 코드 들을 PC 에서 실행하기 위해서는 보통 nodejs 를 설치해서 사용하곤 하는데~


오늘은 Python 에서 Javascript 를 실행시키는 방법에 대해 소개하려 합니다. 


Python에서 Javascript 코드 실행을 위해서는 Windows CMD 창에서 아래와 같이 js2py 모듈을 설치 합니다.

pip install js2py

다음으로 아래 예제를 실행해 보면~ 굉장히 쉽게 알수 있을 겁니다.


코드 문자들을 js2py.eval_js() 함수를 사용하여 Python 내부에서 바로 사용 할 수 있습니다.


또는 Javascript 코드가 파일로 되어 있는 경우에는 다음과 같이 js2py.translate_file() 함수를  사용하면 Javascript 코드를 Python 코드로 변환해더 import 할 수도 있더군요. 

js2py.translate_file('example.js', 'example.py')


js2py 모듈의 더 많은 예는 아래 주소를 참조하시기 바랍니다. 


https://github.com/PiotrDabkowski/Js2Py




Windows 환경에서 TensorFlow 설치를 위해 아래 공식 홈페이지와 
 

아래의 한글 페이지를 참조했다. 


Tensorflow 초기 버전에서는 Windows 에서 설치시 도커 이미지를 사용해서 설치하라고 했던것 같은데 요즘은 그냥 되나 보다.

위 페이지를 참조하여 아래와 같이 간단히 설치 할 수 있다. 


1. Anaconda  3 점대 최신 버전을 설치 한 후에(https://www.anaconda.com/download/)

2. Anaconda Prompt 를 실행시키고 아래 명령어를 통해 py35 라는 이름으로 Python 3.5 버전 환경을 설치한다. 해당 버전은 C:\Anaconda3\envs\py35 폴더에 설치 된다. Eclipse 등을 통해 코딩 할대는 해당 폴더에 있는 python.exe 파일을 interpreter 로 설정하면 된다. 

               conda create --no-shortcuts -n py35 python=3.5 anaconda

3. 아래 명령을 통해 py35 를 활성화 시킨 후에 

               activate py35

4. 아래 명령어를 통해 Tensorflow 를 설치한다. 

               pip install --ignore-installed --upgrade tensorflow
GPU 버전을 설치하고 싶다면 아래 명령어를 통해 설치한다. 
               pip install --ignore-installed --upgrade tensorflow-gpu
설치 메뉴얼을 확인해 보면 GPU 가 있더라도 일단 CPU 버전을 먼저 설치해 보라 추천한다.

5. ipython 실행한 후에 아래 명령어가 정상적으로 실행되면 Tensorflow 가 제대로 설치 된 것이다.

               import tensorflow as tf

ipython 에서 tf. 타이핑 후에 탭을 누르면 아래 그림과 같이 멤버 함수들의 리스트를 보여 줍니다.


위 페이지들 덕분에 생각보다 편하게 설치했네요.



Synology nas를 구매하고 이것저것 만지작 거려 보고 있습니다. 

이제 좀 익숙해져서 SSH 를 통해 접속해서 명령어들을 좀 만지작 거리고 있는데 

Python pip 가 없더군요.

일단 python -V 명령을 통해 파이썬 버전을 확인해보면 

2.7 버전이 기본으로 깔려 있더군요.

  • pip 설치는 매우 간단한데 다음과 같습니다.
  • ssh 를 통해 nas 에 터미널로 접속
  • root 로 로긴 (명령어 : sudo su -  )
  • wget https://bootstrap.pypa.io/get-pip.py
  • python get-pip.py

마지막으로 pip 라고 타이핑해서 다음과 같이 나오면 pip 가 정상적으로 깔린 겁니다.




  1. 조현진 2018.12.30 17:50

    질문좀 드립니다.
    써주신대로 pip 설치시 에러가 납니다.
    "Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib/python2.7/site-packages/pip-18.1.dist-info'
    Consider using the `--user` option or check the permissions."
    이경우 어찌해야 하나요?

    • 남성 2018.12.30 18:27 신고

      에러를 보면 관리자 권한때문에 그런것 같은데 관리자 root 권한으로 변경후 설치해 보시는게 좋을것 같네요. root 권한으로 변경하는 방법은 sudo -i 라고 하면 될 겁니다.

요즘 데이터 처리 관련 내용을 좀 보다가 R 의 함수들을 python 에서 사용 할 수 있다는 것을 알게 되었습니다.

 

바로 rpy2 라는 모듈을 설치하면 되는데~

 

일단 아래 포스팅에서 소개한 바와 같이 R 을 설치 합니다.


http://iamaman.tistory.com/1517

 

R 을 설치한 후에는 위 포스팅에서 소개한 대로 R_HOME, R_USER 환경 변수를 설정합니다.

 

다음으로 Windows Rpy2를 설치 합니다. 아래 링크를 통해 자신의 파이썬, 윈도우 버전에 맞는 rpy2 whl 파일을 다운로드 받고~

 

http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2

 

Python package 설치 하듯이 아래와 같은 형식으로 설치 할 수 있습니다.

 

pip install rpy2-2.7.6-cp27-none-win32.whl

 


이제 rpy2 모듈을 사용하는 일만 남았네요~


엑셀을 사용하면 아래 포스팅에서 소개한 바와 같이

 

http://mwultong.blogspot.com/2006/10/numberstring.html

 

숫자를 글자로 읽게 만들 수 있습니다.

 

NUMBERSTRING() 이라는 함수를 사용해서 아래와 같이 처리가 가능 한거죠~

 

 

그런데 이런 비슷한 경우가 파이썬을 사용해도 가능 하더군요.

 

http://stackoverflow.com/questions/8982163/how-do-i-tell-python-to-convert-integers-into-words

 

 

위 주소를 보니 숫자를 글자로 읽게 만드는 모듈들로 inflect, pynum2word 모듈이 소개 되더군요.

 

현재 윈도우 7 64 비트를 사용 중인데 pynum2word 모듈은 pip 로 설치가 안되는 듯 해서 일단 inflect 을 사용해 봤습니다.

 

위 주소에 나와 있는 것과 같이 다음과 같이 pip 로 설치 가능 합니다.

 

pip install inflect

 

다음으로는 다음과 같이 샘플을 돌려 봤습니다.

 

 

마지막 숫자는 125948963 인데 다음과 같이 표현됩니다…. 읽기도 힘드네요~

 

one hundred and twenty-five million, nine hundred and forty-eight thousand, nine hundred and sixty-three


개인적으로 자동화에 관심이 많이 있습니다.

 

회사에서 주로 윈도우를 사용하는 관계로 Autohotkey 를 많이 사용하는 편인데~

 

때에 따라서는 python 을 사용할 때도 많이 있습니다.

 

그래서 python 에서 autohotkey 를 사용할 수 있는 방법은 없을까 해서 찾아보니

 

아래와 같이 pyahk 라는 파이썬 모듈이 있더군요.

 

https://pyahk.readthedocs.org/en/latest/

 

아시는 분도 계시겠지만 Autohotkey 는 Autohotkey_L, Autohotkey_H 와 같은 다양한 버전이 있습니다.

 

이중 Autohotkey_H 에는 Autohotkey.dll 이 있어서 다양한 프로그램들에서 Autohotkey 를 사용할 수 있도록 해 줍니다.

 

위에서 소개한 pyahk 역시도 이 Autohotkey.dll을 사용한 모듈 입니다.

 

일단 파이썬에서 pyahk를 설치하기 위해 다음과 같이 pip 를 사용하여 pyahk 모듈을 설치 합니다.

 

pip install pyahk

 

저는 현재 python 2.7 windows 32 비트 버전을 설치하여 사용 중입니다. 현재 pyahk 는 Autohotkey_H ANSI 32-bit Version 1.1.8.1 에 대한 wrapper 이라 합니다. 또한 python 3 에서는 동작하지 않는다고 하네요.

 

다음으로 아래 주소에서 Autohotkey_H 를 다운로드 합니다.

 

http://www.autohotkey.net/~HotKeyIt/AutoHotkey/files/AutoHotkey-txt.html

 

현재 1.1 버전의 직접적인 다운로드 주소는 다음과 같습니다. 크롬에서는 아래 주소의 파일을 다운로드 하려 하니 유해 프로그램 경고가 뜨네요.

 

http://hotkeyit.ahk4.net/AutoHotkey.zip

 

일단 다운로드 후에 압축을 해제 하고 Win32a 폴더에 있는 Autohotkey.dll 파일이 들어 있는 폴더를 환경 변수에 설정하거나 파이썬 프로젝트 내에 Autohotkey.dll 파일을 넣어 줍니다.

 

이제 파이썬에서 테스트를 해보죠.

 

다음은 pyahk 의 홈페이지에 있는 예제 코드인데 Notepad 라는 타이틀의 창이 있는지를 체크하고 있을 때는 HWND 값을 출력합니다.

 

# -*- coding: cp949 -*-

 

import ahk


script = ahk.Script() # Initializes with start and ready commands as above

a = script.winActive("Notepad") # Sets a to the return value of the method

print a # prints the HWND of the found window as an int, or None

script.variable('b', float) # Creates a transparent variable attribute

ahk.execute("Random, b, 0.0, 1.0") # Stores value in `b`

print 100 * script.b # b is retrieved and converted to its saved type (float)

 

다음으로 b 라는 변수를 설정한 다음 Autohotkey random 함수를 사용하여 0~1 사이의 값을 구하고 곱하기 100을 해서 출력하는 예입니다.

 

파이썬 파일의 맨 위에는 cp949로 인코딩 옵션을 넣어 줬습니다.

 

일단 실행을 해보니~ 다음과 같이 정상적으로 동작하더군요.

 

 

그런데 다음과 같이 위에 부분을 주석 처리 하고 실행해 봤습니다.

 

결과를 보시면 아시겠지만 뭔가 이상한 결과가 나오더군요. 변수 메모리 참조를 잘못하는 게 아닌가 하는 생각이……

 

아직은 0.2 대의 버전이니만큼 버그가 있는 걸로 보이네요.

 

좀더 확인을 해 봐야겠지만…… ahk.execute() 함수를 사용한 autohotkey 실행은 괜찮게 돌아가는 것 같네요.

  1. 광영 2018.03.05 22:52 신고

    잘 봤습니다. 아무래도 화면제어 쪽이 필요한 일이 있어서 알아보다가, 파이썬으로 제어를 찾다 보니 여기까지 검색으로 흘러 들어왔습니다. 게시물들 잘 보겠습니다.

  2. 2018.03.12 08:49

    비밀댓글입니다

  3. 안준 2018.03.12 09:16

    안녕하세요 파이썬 게시판 항상 열심히 보고있었습니다~
    저도 자동화에 많은 관심이있는데요,
    파이썬, 오토핫키 두개를 따로 쓰다가 문득 같이 쓰면 좋을거 같다는 생각을했습니다.
    근데 파이썬에서 오토핫키의 장점 키보드 마우스 제어는 해보셨나요?ㅠㅠ
    안되는거같아서요...

    • 남성 2018.03.12 11:48 신고

      파이썬을 사용하여 윈도우를 자동화 하기 위한 라이브러리로 pywinauto 라는 라이브러리가 있습니다. 윈도우 운영체제에서 키보드 마우스를 자동화 하기 위한 것이라면 굳이 파이썬에서 오토핫키를 연동 하려는 노력보다는 pywinauto 와 같이 파이썬 만으로 구성된 라이브러리를 사용하여 보시는게 조금 더 편하실 것 같습니다

텍스트 파일을 사용하다 보면 encoding 이 문제가 되는 경우가 종종 있습니다.

 

이런 경우에는 encoding 을 변경하여 해결 하곤 하는데~

 

notepad++ 와 같은 에디터의 기능을 활용 하거나~ 아니면 iconv 와 같은 명령어를 사용하여 encoding 을 변경하곤 하는데요~

 

iconv 와 같은 명령어를 활용하더라도 현재 텍스트 파일의 encoding 방식을 확인 해야 합니다.

 

encoding을 확인 하기 위해 일일이 에디터에서 파일을 여는 것도 귀찮아서 찾아보니~

 

chardet 라는 python 모듈을 있더군요.

 

https://github.com/chardet/chardet

 

위 주소에서 확인 할 수 있는 바와 같이 아래 타입들을 detect 할 수 있다고 합니다.

 

ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants), Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese), EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese), EUC-KR, ISO-2022-KR (Korean), KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic), ISO-8859-5, windows-1251 (Bulgarian), windows-1252 (English), ISO-8859-7, windows-1253 (Greek), ISO-8859-8, windows-1255 (Visual and Logical Hebrew), TIS-620 (Thai)

 

python 모듈이니만큼 설치도 굉장히 간단한데요~

 

다음과 같이 pip 로 설치 할 수 있습니다.

 

pip install chardet

 

설치는 하면 아래 그림과 같이 C:\Python27\Scripts\chardetect.EXE 에 chardetect 실행 파일이 설치가 됩니다.

 

그럼 다음과 같이 명령어를 이용하여 텍스트 파일의 encoding 을 확인 할 수 있습니다.

 

chardetect 파일명1 파일명2 파일명3 …

 


오늘은 Python Graphviz 모듈 사용법에 대해 간단히 알아보겠습니다.

 

Doxygen 을 사용해 본 분들은 아시겠지만 GraphViz 는 스크립트로 다이어그램 등을 그릴 수 있는 툴 입니다.

 

규격화된 다양한 그래프들을 스크립트로 그릴 수 있으니 노가다를 안 해도 돼서 굉장히 편리하더군요.

 

아무튼 이 GraphViz 를 python 을 통해서 사용하는 방법이 있더군요.

 

바로 GraphViz 모듈을 사용하는 건데요~ 아래 주소에 그 예나 설치 방법 등이 나와 있더군요.

 

https://pypi.python.org/pypi/graphviz

 

pip 를 설치하신 분들은 그냥 간단하게 커맨드 창 또는 쉘에서 pip install GraphViz 라고 타이핑 하면 설치가 됩니다. Pip 설치 안되신 분들은 아래 주소 참조해서 설치하면 됩니다. 요즘은 윈도우에서 파이썬을 설치하면 pip 도 자동으로 설치가 되더군요. 

 

http://iamaman.tistory.com/997

http://iamaman.tistory.com/984

 

그리고 만들어진 dot source code 를 실행 하기 위해서는 당연히 GraphViz 가 설치되어 있어야 합니다. GraphViz 는 아래 주소에서 설치 가능 합니다.

 

http://www.graphviz.org/Download.php

 

GraphViz 는 윈도우 64 비트의 경우 보통 아래 폴더에 설치가 되고~ 아래 폴더를 환경변수의 Path 에 추가하여 시스템 어디에서나 dot.exe를 실행 할 수 있도록 합니다. 포터블 버전을 다운로드 받아서 사용 중이시라면 해당 bin 폴더를 path 에 추가하면 됩니다.

 

C:\Program Files (x86)\Graphviz2.38\bin

 

위 GraphViz 모듈 주소의 예제를 약간 수정하여 스크립트를 하나 만들어 봤습니다.

 

위 코드를 실행하면~ 아래 그림과 같이 커맨드 창에 해당GraphViz 스크립트가 나오고~

 

 

아래 그림과 같이 다이어그램이 보여 집니다. 해당 그래프 및 GraphViz 스크립트는 해당 작업 폴더의 test-output 폴더 안에 저장이 됩니다.

 

 

다음으로 위 그림에서 언더라인이 있는 Sir Bedevere the Wise 을 클릭하면 제 블로그인 http://iamaman.tistory.com/ 가 뜨는 것을 확인 할 수 있습니다.

 

그 외 참조 주소:

GraphViz Node Shapes: http://www.graphviz.org/doc/info/shapes.html

Target 값들에 대한 설명: http://stackoverflow.com/questions/7008355/how-to-make-links-in-an-embedded-svg-file-open-in-the-main-window-not-in-a-sepa


apsw, aspell-python, assimulo, astropy, Atom, autopy, Babel, backports, basemap, Bazaar, bcolz, bigfloat, bioformats, biopython, bio_formats, bitarray, BLAZE, blender-mathutils, blist, blosc, bokeh, boost.python, bottleneck, bsdiff4, carray, cartopy, casuarius, cdecimal, cellcognition, cellprofiler, ceodbc, certifi, cffi, cgal-python, cgkit, Cheetah, cld, conda, Console, Coverage, curses, cvxopt, cx_freeze, cython, cytoolz, delny, dipy, docutils, dpmix, dynd, EcOS, enaml, epydoc, ETS, fastcluster, faulthandler, ffnet, fiona, fipy, fonttools, friture, gdal, gevent, gmpy, greenlet, guiqwt, h5py, holopy, htseq, ilastik, iminuit, imread, intbitset, iocbio, IPython, iris, javabridge, jcc, jinja2, jpype, jsonlib, kivy, kiwisolver, kwant, la, liblas, liblinear, libpython, libsbml, libsvm, libtfr, libxml-python, line_profiler, llist, llvmlite, llvmpy, lp_solve, lsqfit, lxml, mahotas, MAKO, marisa-trie, markupsafe, matplotlib, MDP, Mercurial, meshpy, milk, minepy, mlpy, mmlib, mmseg, mmtk, mod_wsgi, mpi4py, msgpack, mxbase, mysql-python, mysqlclient, natgrid, netcdf4, networkx, nibabel, nipy, nipype, nitime, nlopt, nltk, nmoldyn, Noise, nose, numba, Numeric, numexpr, numpy, numscons, ODE, openbabel, opencv, openexr, openglcontext, openimageio, ORANGE, oursql, pandas, patsy, pgmagick, pillow, pip, Planar, Polygon, polymode, psutil, psycopg, Pulp, py-fcm, py-postgresql, py2exe, pyalembic, pyamf, pyamg, pyaudio, pybluez, pybox2d, pycairo, pycares, pycifrw, pycluster, pycogent, pycosat, pycparser, pycuda, pycurl, pydbg, pydde, pyeda, pyephem, pyexiv2, pyfftw, pyfftw3, pyfits, pyfltk, pyfmi, pygame, pygit2, pyglet, pygments, pygraphviz, pygtk, pyhdf, pyhook, pyicu, pyisapie, pylibdeconv, pylibtiff, pylzma, pymatlab, pymc, pymca, pymedia, pymex, pyminuit, pymix, pymol, pymongo, pymssql, pymunk, pymutt, pymvpa, pynifti, pyodbc, pyopencl, pyopengl, pyparsing, pyproj, pyqt4, pyqwt, pyreadline, pyropes, pyrxp, pySerial, pysfml, pyshp, pyside, pysparse, pyspharm, pysqlite, pystemmer, pytables, python-cjson, python-dateutil, python-igraph, python-ldap, python-levenshtein, python-lz4, python-lzo, python-snappy, python-sundials, pythonmagick, pythonnet, pytst, pytz, pyusb-ftdi, pyviennacl, pyvisa, pyvrml97, pywavelets, pywcs, pywin32, pyxml, pyyaml, pyzmq, qimage2ndarray, quantlib, quickfix, qutip, rasterio, re2, Regex, reportlab, requests, rpy2, rtmidi-python, rtree, scientificpython, scikit-bio, scikit-image, scikit-learn, scikits.ann, scikits.audiolab, scikits.delaunay, scikits.hydroclimpy, scikits.odes, scikits.samplerate, scikits.scattpy, scikits.timeseries, scikits.umfpack, scikits.vectorplot, scipy, scipy-cluster, scipy-stack, scitools, scons, sendkeys, setuptools, sfepy, shapely, silvercity, simpleitk, simplejson, Six, slycot, smc.freeimage, sparsesvd, sphinx, Spyder, SQLAlchemy, statsmodels, steps, sympy, ta-lib, theano, thrift, tinyarray, Tornado, trfit, twainmodule, Twisted, ujson, umysql, veusz, videocapture, vigra, virtualenv, visionegg, vispy, visvis, vitables, vlfd, vpython, vtk, wxPython, yappi, YT, zodb3, zope.interface

요즘 파이썬을 주로 사용하면서 다양한 모듈들을 찾는 재미에 푹 빠졌는데요~

 

윈도우를 주로 사용하다 보니 pip 로 인스톨이 안되는 경우가 종종 있더군요.

 

이런 경우에는 버츄얼 박스에서 리눅스를 설치해서 사용해도 되긴 하는데~

 

찾아보니 아래 주소에 다양한 윈도우용 파이썬 모듈들이 있더군요.

 

http://www.lfd.uci.edu/~gohlke/pythonlibs/

 

위 주소에서 제공하는 모듈들은 다음과 같습니다.

 

pycosat, virtualenv, pip, setuptools, requests, libsvm, liblinear, cytoolz, dynd, gevent, bokeh, blaze, pygit2, numba, llvmlite, iris, pillow, mercurial, netcdf4, rpy2, biopython, reportlab, scipy, yt, nibabel, backports, pandas, ets, pyalembic, shapely, scikit-bio, pycairo, spyder, statsmodels, python-dateutil, pytz, sfepy, apsw, python-igraph, pyqwt, pylzma, openimageio, pymssql, pyvisa, sympy, lxml, lsqfit, thrift, pyicu, pyside, guiqwt, pyqt4, regex, gdal, cellcognition, vigra, h5py, pytables, pycurl, ipython, pygments, mahotas, pyspharm, imread, scons, kiwisolver, enaml, atom, faulthandler, conda, bigfloat, yappi, visvis, simplejson, line_profiler, rasterio, fiona, bioformats, javabridge, mysqlclient, numpy, pyzmq, pyfftw, minepy, mlpy, matplotlib, py2exe, veusz, greenlet, cython, sqlalchemy, bcolz, psutil, vlfd, pyparsing, pymc, pywin32, friture, pymol, orange, python-ldap, gmpy, pymca, blender-mathutils, jcc, scientificpython, opencv, kwant, pymunk, pulp, jpype, intbitset, astropy, qutip, networkx, twisted, pylibtiff, quickfix, six, nltk, tornado, numexpr, rtree, polygon, pythonnet, pycares, scikit-learn, psycopg, sphinx, vispy, scipy-stack, nose, libpython, pyxml, cvxopt, pycuda, basemap, qimage2ndarray, iminuit, pgmagick, milk, llvmpy, pymongo, nlopt, libsbml, pysqlite, pyfits, patsy, certifi, mxbase, python-lz4, blosc, meshpy, docutils, cffi, scikit-image, lp_solve, pyeda, pystemmer, pyopengl, pyrxp, pymvpa, cartopy, natgrid, python-levenshtein, ecos, msgpack, pyfmi, assimulo, nitime, mako, jinja2, pyephem, pyopencl, mod_wsgi, cx_freeze, pyviennacl, markupsafe, vitables, mpi4py, quantlib, pyaudio, steps, mmtk, pyminuit, smc.freeimage, vtk, pyhdf, pyyaml, pycifrw, pygame, videocapture, pythonmagick, pyvrml97, openglcontext, zope.interface, blist, aspell-python, ode, pycluster, cdecimal, noise, scikits.odes, scikits.umfpack, scikits.ann, scikits.vectorplot, curses, mysql-python, oursql, libtfr, htseq, marisa-trie, ffnet, polymode, slycot, ta-lib, pymutt, bsdiff4, pyfltk, pyisapie, pycparser, pybluez, openbabel, pysfml, pywavelets, pyserial, ujson, rtmidi-python, kivy, nipype, pydde, llist, pymix, dipy, bio_formats, bottleneck, fastcluster, la, cgkit, planar, ceodbc, scipy-cluster, pyhook, pyproj, sparsesvd, simpleitk, casuarius, coverage, twainmodule, python-snappy, theano, boost.python, bitarray, pyodbc, fonttools, pylibdeconv, fipy, tinyarray, pyshp, carray, pysparse, nipy, bazaar, pygraphviz, babel, pyamg, umysql, scikits.samplerate, scikits.scattpy, scikits.hydroclimpy, scikits.delaunay, autopy, libxml-python, pyusb-ftdi, mmlib, cellprofiler, pyreadline, py-fcm, liblas, vpython, scikits.audiolab, py-postgresql, pyamf, holopy, pyropes, epydoc, cheetah, pywcs, python-sundials, openexr, dpmix, cld, mdp, pycogent, jsonlib, silvercity, console, python-cjson, pytst, sendkeys, pydbg, pyglet, python-lzo, delny, pyexiv2, ilastik, scitools, trfit, re2, cgal-python, pymedia, pyfftw3, pymex, pymatlab, zodb3, pygtk, numeric, nmoldyn, iocbio, wxpython, pybox2d, mmseg, pynifti, scikits.timeseries, numscons, visionegg

최근에 Python을 적극적으로 사용해 보면서 Python의 다양한 Package 들을 찾는 재미에 푹 빠져 있습니다.

 

이전 포스팅에서 Pyzo 에 대해 소개하면서 sympy 라는 package 가 들어있다고 얘기를 했었는데 sympy 라는 package 는 Computer Algebra System(CAS) package 입니다.


2014/12/03 - [programming language/Python] - Python Pyzo, IEP


 

Computer Algebra System (CAS) 란 우리가 흔히 알고 있는 Mathematica, MATLAB, SAGE 나 아래 포스팅에서 소개했던 MAXIMA, Geogebra 등에 들어 있는 기능입니다.

 


2014/08/28 - [수학] - MAXIMA CAS 를 사용한 수학 공부


2014/08/28 - [지오지브라] - 지오지브라(Geogebra) 정삼각형 두 개로 외접원 그리기


2013/10/28 - [컴퓨터일반] - 지오지브라(Geogebra)로 수학을 재미있게~, 함수의 교점 구하기


   

말 그대로 symbolic 으로 수학 계산을 하는 건데~

 

이런 기능이 python 에도 있더군요. 그런 기능을 하는 package 가 바로 sympy 입니다.

 

Sympy 의 공식 주소는 아래와 같으며~

http://www.sympy.org/

 

다음과 같이 pip 명령어로도 설치 가능합니다.

pip install sympy

 

혹시 pip 가 설치되어 있지 않은 분들은 아래 주소 참조하여 설치 하시길~

 

위 명령어로 설치를 하셨다면 ~ 다음과 같이 Symbolic 으로 수학 연산을 수행 할 수 있습니다.

 

Sympy 에서는 홈페이지에서 다음 그림과 같이 online shell 이라는 환경을 제공해 주더군요. 컴퓨터에 python 이나 sympy 가 설치되어 있지 않더라도 브라우저에서 실행 가능합니다.


http://live.sympy.org/


 

 

Sympy 의 매뉴얼은 아래 주소와 같은데~ 미적분이나 limit, solve 기능 등이 기본으로 되더군요.

 

http://docs.sympy.org/latest/tutorial/index.html

 

매뉴얼도 굉장히 잘 되 있어서 브라우져에서 각 설명 제목 부분의 Run~ 부분을 클릭하면 online shell 에서 해당 코드가 실행되서 굉장히 빨리 사용법을 읽힐 수 있을 것 같네요~

 

아래 포스팅에서 Perl을 이용한 윈도우 Clipboard 접근 방법에 대해 설명 드린 적이 있는데요~

  


2014/03/12 - [programming language/Perl] - Perl Clipboard 사용하기



오늘은 Python에서 Clipboard 사용하는 방법에 대해 설명 드리려 합니다.

 

Python 에서 clipboard 에 접근을 할 수 있게 해주는 모듈은 pyperclip 입니다.

 

Pip search 를 해서 검색을 해보니 다음과 같이 A cross-platform clipboard module for Python. 이라고 나오네요~

 

CMD 창에서 간단하게 아래 명령어로 설치 할 수 있습니다.

 

Pip install pyperclip

 

Pip 가 설치 안된 분들은 아래 포스팅 참조해서 설치하시기 바랍니다.



2013/09/23 - [programming language/Python] - Windows 에서 Python easy_install, pip 설치


다음으로 간단하게 clipboard 의 내용을 다루는 예제를 한번 실행해보죠~

 

import pyperclip

pyperclip.setcb('The text to be copied to the clipboard.') # clipboard 에 내용 넣기

spam = pyperclip.getcb() # clipboard 에서 내용 가져오기

 

정말 간단하죠~ 그럼 운영체제의 clipboard 의 내용을 메모장에 붙여 넣어 볼까요~

 

Ctrl + V 를 눌러서 붙여 넣어보니 잘 되네요~






Python BeautifulSoup 를 사용한 로또 번호 불러오기에 대해 소개한다.

 

공식 홈페이지는 다음과 같으며~ 


http://www.crummy.com/software/BeautifulSoup/


BeautifulSoup 의 설치는 pip 를 사용한다. 최신 버전은 아래 명령어로 설치 가능하다.

 

pip install beautifulsoup4

 

pip 가 설치 방법에 대해서는 아래 주소 글 참조 바란다. 

2013/09/23 - [유틸] - Windows 에서 Python easy_install, pip 설치


설치가 다 완료 되었으면 아래와 같이 코딩하고 실행 시킨다. 

from bs4 import BeautifulSoup

import urllib2

 

url='http://www.nlotto.co.kr/common.do?method=main'

 

page=urllib2.urlopen(url)

soup = BeautifulSoup(page.read())

 

hoi = soup.find('span', id="lottoDrwNo")

 

print hoi.string + "hoi"

print " "

 

list=[]

for n in range(1,7):

strV="drwtNo" + str(n)

first = soup.find('img', id=strV)['alt']

list.append(first)

print first

 

print " "

 

bonus = soup.find('img', id="bnusNo")['alt']

print bonus

 

다음과 같이 로또 번호를 읽어오는 것을 확인 할 수 있다.

  1. 2014.12.02 23:05

    비밀댓글입니다

    • 남성 2014.12.03 01:55 신고

      위 포스팅의 코드를 에디터를 열어서 파일에 저장하면 되겠죠.

요즘 python 에 관심을 가지고 웹서핑을 하고 있는데~

 

virtualenv 에 대해 여기저기서 소개가 되더군요.

 

뭐 일종의 python 가상환경을 설정하는건데~ 아래 주소의 글에 사용 이유 등이 설명되어 있습니다.

 

http://www.flowdas.com/blog/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-virtualenv/

 

위 주소의 글 뿐만이 아니라 이 글 맨 아래의 참조 글 들에도 사용법들이 잘 설명되어 있어서~

 

오늘의 포스팅에서는 Window 환경에서 pip, virtualenv, virtualenv 를 좀더 편리하게 사용하기 위한 virtualenvwrapper-win, Windows powershell 에서 사용하기 위한 virtualenvwrapper-powershell 을 설치하기 위해 batch 스크립트를 작성해 봤습니다.

 

일단 제가 작성한 batch 스크립트가 돌아가기 위해서는 wget 명령어를 실행 할 수 있어야 하고 저는 이를 위해 아래 포스팅에서 설명한 GOW를 설치한 상태입니다.


2012/11/11 - [유틸] - GNU On Windows 를 이용하여 Windows 에서 Linux 명령어 사용하기


 

현재의 제 컴퓨터 환경은 Windows 7, 64 bits 이고 python 2.7 이 설치되어 있습니다.

 

distribute_setup.py, get-pip.py 파일 다운로드 스크립트

wget http://python-distribute.org/distribute_setup.py

wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py

 

pip 설치 스크립트

python distribute_setup.py

python get-pip.py

 

virtualenv, virtualenvwrapper-win, virtualenvwrapper-powershell 설치 스크립트

pip install virtualenv

pip install virtualenvwrapper-win

pip install virtualenvwrapper-powershell

 


아래 첨부한 VirtualenvSetting.bat 파일을 다운로드 받아서 실행하면 한번에 설치가 됩니다. 

 


VirtualenvSetting.bat



<VirtualenvSetting.bat>


wget http://python-distribute.org/distribute_setup.py

wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py

 

python distribute_setup.py

python get-pip.py

 

pip install virtualenv

pip install virtualenvwrapper-win

pip install virtualenvwrapper-powershell

 

 

참조 사이트


http://www.tylerbutler.com/2012/05/how-to-install-python-pip-and-virtualenv-on-windows-with-powershell/


http://blog.naver.com/PostView.nhn?blogId=ez_&logNo=140138625021


https://zignar.net/2012/06/17/install-python-on-windows/


http://stackoverflow.com/questions/2615968/installing-virtualenvwrapper-on-windows


https://github.com/davidmarble/virtualenvwrapper-win



Perl 에 CPAN(The Comprehensive Perl Archive Network)이 있다면 Python 에는 easy_installpip 가 있다고 할 수 있을 것 같네요.

 

CPAN 을 사용하듯이 easy_install 과 pip 를 사용하면~ command 창에서 쉽게 원하는 package 를 설치 할 수 있습니다.

 

검색을 해보니 easy_install 은 향후에는 없어질 거라고 하더군요.

 

뭐 난중에 없어진다고 하더라도~ 현재까지는 잘~~ 사용되고 있고

 

easy_install 을 사용해서 pip 를 설치할 것이므로~ 오늘의 포스팅에서는 easy_install 부터 설치를 해보죠~

 

현재 제 컴퓨터 환경은 Windows 7, 64 bits 이고~ python 2.7 버전이 설치되어 있는 상태 입니다.

 

어느 폴더에서나 python 을 실행 할 수 있도록 C:\Python27폴더도 환경변수의 path 에 잡혀 있습니다.

 

easy_install은 python package 인스톨 등을 위한 명령어이고~ 이런 툴을 setuptools이라 합니다.

 

아래 주소에서 ez_setup.py 파일을 다운로드 받습니다. 현재는 1.1.6 버전이 최신 버전이네요~


https://pypi.python.org/pypi/setuptools/1.1.6#windows


 

아래 이미지와 같이 받으시면 됩니다.


편의를 위해 ez_setup.py 파일도 첨부합니다.


ez_setup.py


 

편한 폴더에 다운로드 받은 후에 command 창에서 해당 폴더로 이동 한 후 아래 그림과 같이 입력하고 엔터를 눌러 주면~ setuptools 의 설치가 시작 됩니다.


python ez_setup.py




설치는 인터넷이 연결된 상태에서 진행되야 하며~ 조금만 기다리면 다음과 같이 설치가 완료 됩니다.


 

설치가 완료되면~ C:\Python27\Scripts 라는 폴더가 생성되고 해당 폴더에 easy_install-2.7.exe,

easy_install.exe 와 같은 실행 파일들이 들어 있게 됩니다.

 

easy_install.exe 명령을 아무 폴더에서나 편하게 사용하기 위해~ C:\Python27\Scripts 폴더를 환경변수의 path 에 설정해 줍니다.

 

C:\Python27폴더가 환경변수의 path 에 잡혀 있지 않은 분들은 아래 명령어와 같이 python.exe 의 full path 를 다 쳐줘야 합니다.


C:\Python27\python.exe ez_setup.py

 

환경 변수 설정 후 command 창을 재 실행 합니다.

 

그리고 다음과 같이 pip 를 설치 합니다.


easy_install pip


 

pip 라고하고 엔터를 치면~ pip 에 대한 설명들이 나옵니다.


 

install 명령을 통해 패키지를 설치하고~

pip install [패키지 이름]

 

pip list 라고 하면 현재 설치된 package 들의 목록이 다음과 같이 나타납니다.


 

아래 예와 같이 search 명령을 통해 sqlite3 와 관련한 package 들을 검색 할 수 있습니다.


 

그리고 아래 주소에서는 카테고리 별로 package 들을 검색 할 수 있고

https://pypi.python.org/pypi?%3Aaction=browse

 

아래 주소에서는 package 들의 list 가 쫘~~~ 악 나옵니다. 리스트가 하도 많아서 아래 주소로 들어가니깐 브라우져가 버벅 거리더군요.

https://pypi.python.org/pypi?%3Aaction=index

 


  1. 2014.04.27 23:55

    비밀댓글입니다

  2. 우동짭짭 2014.05.06 18:50

    파이썬을 공부하고있는 초보입ㄴ다. 올려주서셔서 감사합니다. 혹시 프로그그래밍 관련일을 하시는지요?

    • 남성 2014.05.06 19:09 신고

      방문해 주셔서 감사합니다. ^^ 프로그래밍 관련일 하고 있습니다. 저도 잘 몰라서 잊어버리지 않으려고 그때 그때 적어 놓고 있어요~ 저도 파이썬 초보에요~

  3. 2014.06.25 08:50

    비밀댓글입니다

    • 남성 2014.06.25 12:16 신고

      python.exe 를 못 찾는거 보니 환경변수로 설정되지 않은것 같네요. 윈도우라면 보통 python.exe는 C:\Python27 폴더에 들어있습니다. C:\Python27 을 path 환경 변수에 설정해 주시면 될겁니다.

      참고로~ 윈도우에서 환경 변수 설정 할때는 아래 주소에서 설명하는 Rapid Environment Editor 같은 툴을 사용하면 편리합니다.

      http://iamaman.tistory.com/1213

+ Recent posts