PYTHON은 기본적으로 컴파일러 형식이 아닌 인터프리터 방식의 언어를 채택하여 사용하며, 호환성을 기본목적으로 하는 것 같다.
이는 Java의 JVM(Java Virutal Machine)과 비교하면 되겠지만, Java 와 다른게 인터프리터 형식으로 연결해주는 것 같다.
그래서 계산이 많고, 복잡한 기능들을 빠른 실행이 힘들지만, 다양한 호환성과 다루기편하여 쉽게 Programming이 가능하여 Programer에게 편이성을 제공하는 것 같다.
이도 역시JVM의 목적과도 유사한 것 같다.Embeded에서 이제는 주로 ARM을 사용하지만,이 전에는 PowerPC 및 x86의 호환성을 생각하고,
다루기 편하게 설계된 것이 Java 인 것 처럼 Python 역시 호환성과 프로그래밍 용이성이 생명인 것 같다.
위에서 언급했듯이 Python의 장점은 인터프리터 언어로만 끝나는것이 아니라, 기존에 존재하는 C , Java와 함께 연동이 가능하며,
쉽게 Python으로 Programming 하여 이들을 이용하는 것이다. 이는 Graphic Library 인 GTK or QT 뿐만 아니라
Gstreamer 그 밖에 Protocol 및 Device 제어, 다양하게 제공해주는 Module과 함께 손쉽게 프로그래밍 하는 것이다.
- 이외 에도 Google에서 만든 Go 가 존재하지만, 경험이 없어 비교만 하겠다.
- Python의 동작원리 및 인터프리터관련 추가설명
https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC
1.1 Python의 Version
Python의 문법과 Design은 Version 이 변경이 되면서 부터 좀 많이 변경이 되었으며,
Version 별로 지원되는 Library가 있기에 확인이 중요한 것 같다.
Version 3과 2가 호환이 되지 않기에 이를 좀 주의하면서 확인을 해야 할 것 같다.
- Python 2.6/7
주로 이전 소스 및 관련 Open Source에 연결된 Package들 때문에 v2를 사용하며, 가급적 v3사용
https://docs.python.org/2.6/tutorial/index.html- Python 3
상위와 호환이 되지 않으며 최신 오픈소스들은 이 기반이지만, 예전 소스는 v2이므로 주의
https://docs.python.org/3/tutorial/index.htmlhttps://docs.python.org/3/tutorial/controlflow.html
나의 경우는 갑자기 Python을 써야하는 경우가 발생하여, 위 Manual을 읽고,
많은 도움이 되었으며, Gstreamer 와 GTK관련부분 Python부분을 수정하여 구현을 하였다.
하지만 머리가 좋지 않아, 익숙지 않으며, 매번 Manual을 읽어야만 하는 것 같다.
1.2 Python의 종류
Cpython과 관련 Library 및 GTK에 Gstreamer를 사용을 하며,Android에서 사용하는 qpython이나 가지고 장난하는 수준이어서 많은 정보를 제공을 못하지만,
아래와 같이 간단히 설명한다.
- Cpython(Cython)
호환성을 최대로 하며, 장점은 C Library의 접근이 용이하여, 그래서 많은 Module과 Library를 제공을 한다.
기본적으로 Python이라고 하면 Cpython을 말한다.
https://www.python.org/
https://en.wikipedia.org/wiki/CPython
https://wiki.python.org/moin/PyGtk
https://docs.python.org/3/faq/library.html
- PyPi (The Python Package Index)
다양한 back-ends (C, CLI, JVM을)지원을 한다, PyPy는 성능향상과 CPython과의 호환성을 목표로하고 있으며, PyPi는 CPython보다 5배정도 빠르다고 한다.
https://pypi.org/
https://pypi.python.org/pypi
만들어진 Python이며, 장점은 Java의 호환성이라고 한다.
http://www.jython.org/index.html
http://jythonbook-ko.readthedocs.io/en/latest/JythonAndJavaIntegration.html
http://codedragon.tistory.com/865
http://www.wikitree.co.kr/main/news_view.php?id=160061
2. Python의 Module Library
Python은 Import 기능은 Module Library를 Include 하여, 그 안에 존재하는 Funcion을 이용가능하며,
이는 손쉽게 사용하고자 하는 Module Library 제어가 가능하다.
그래서 Module 및 Library의 지원확인이 매우 중요하다.
A. Module의 위치
B. Module 기본 사용법
http://www.ibiblio.org/g2swap/byteofpython/read/making-modules.html
http://www.scipy-lectures.org/advanced/interfacing_with_c/interfacing_with_c.html
https://docs.python.org/2/extending/extending.html
https://docs.python.org/3.3/extending/extending.html#
직접 동적 lib *.so를 호출가능
https://docs.python.org/2/library/dl.html
C. Module과 Package 이용방법
Package는 여러 Python Program의 묶음이라고 생각하면 되겠다.
https://docs.python.org/2/tutorial/modules.html
D. 유용한 Python Module Library
https://wiki.python.org/moin/UsefulModules
이곳에서, Python이 제공되는 Module Library를 확인가능하다.
E. Python Standard Library
https://docs.python.org/3/library/
2.1 Python의 활용
Python의 활용은 지원되는 Module Library에 있으며, 이 기본 API들을 사용방법을
아는것이 최대 활용이겠다.
GTK, QT, Gstreamer, Android의 각종 Deivce 제어 뿐만 아니라, http 연결 활용용도가 너무 많다.
http://qpython.com/#qrcode
https://wikidocs.net/145
http://nullege.com/codes/show/src@w@e@WebSocket-for-Python-HEAD@example@droid_sensor.py/48/android.Android
https://pypi.python.org/pypi
- Jython
만들어진 Python이며, 장점은 Java의 호환성이라고 한다.
http://www.jython.org/index.html
http://jythonbook-ko.readthedocs.io/en/latest/JythonAndJavaIntegration.html
- IronPython 과 PythonNet
- Python의 종류와 그 밖에 관련설명
http://codedragon.tistory.com/865
http://www.wikitree.co.kr/main/news_view.php?id=160061
2. Python의 Module Library
Python은 Import 기능은 Module Library를 Include 하여, 그 안에 존재하는 Funcion을 이용가능하며,
이는 손쉽게 사용하고자 하는 Module Library 제어가 가능하다.
그래서 Module 및 Library의 지원확인이 매우 중요하다.
A. Module의 위치
- 현재 directory
- 만약 위해서 찾지 못했다면, 환경변수 PYTHONPATH 에 있는 곳으로 찾음
- 그래도 찾지 못하면, UNIX는 /usr/local/lib/python/.
B. Module 기본 사용법
- 자신의 Module 사용법
http://www.ibiblio.org/g2swap/byteofpython/read/making-modules.html
- C와 Python의 Interface
http://www.scipy-lectures.org/advanced/interfacing_with_c/interfacing_with_c.html
https://docs.python.org/2/extending/extending.html
https://docs.python.org/3.3/extending/extending.html#
직접 동적 lib *.so를 호출가능
https://docs.python.org/2/library/dl.html
- 기본 Module 사용방법
Package는 여러 Python Program의 묶음이라고 생각하면 되겠다.
https://docs.python.org/2/tutorial/modules.html
D. 유용한 Python Module Library
https://wiki.python.org/moin/UsefulModules
이곳에서, Python이 제공되는 Module Library를 확인가능하다.
E. Python Standard Library
- V3
https://docs.python.org/3/library/
- V2
2.1 Python의 활용
Python의 활용은 지원되는 Module Library에 있으며, 이 기본 API들을 사용방법을
아는것이 최대 활용이겠다.
GTK, QT, Gstreamer, Android의 각종 Deivce 제어 뿐만 아니라, http 연결 활용용도가 너무 많다.
- Python 기본사용법
- Android에서의 파이썬
http://qpython.com/#qrcode
https://wikidocs.net/145
http://nullege.com/codes/show/src@w@e@WebSocket-for-Python-HEAD@example@droid_sensor.py/48/android.Android
- 장고 (Web)
- 파이썬과 장고