Tag Archives: python

Oracle – python 연동

Oracle은 별로 쓰고싶지 않은데…  또…

이번엔 clob 데이터 문제… mssql의 데이터를 oracle로 옮겨야되는데… clob자료형이다.
sql developer에서 insert query로 뽑아내서 옮기려고 하는데 clob라서 안된다.
python으로 스크립트를 짜서 처리를 하려고 하는데~~

Oracle은 만만한 녀석이 아니다.

프로세스 진행상황을 순차적으로 기록하면

1. MS-SQL 연동(은 덤으로)

pymssql을 설치하니까 간단히 연동이 된다.

바로 잘 돌아간다.

단, 내 컴퓨터에는

Visual Studio 2015, MSSQL(sql server 2008 r2)서버가 설치되어 있다. 조건이 다르다면 바로 안될수도 있다.

 

 

2. Oracle 연동

샘플코드는 이렇다.

도큐먼트 : http://cx-oracle.readthedocs.io/en/latest/index.html

 

오라클답게 쉽게 설치되지 않는다.
pip install cx_Oracle

pip로 설치후에 발견되는 에러
ImportError:DLL load failed:지정된 프로시저를 찾을 수 없습니다.
InterfaceError:Unable to acquire Oracle environment handle

 

위에러가 자꾸 나와서.

oracle instant client설치
C:\oracle\instantclient_12_1 이 경로에 설치 해 주고 path 잡아줬다.

cx_Oracle 설치
https://pypi.python.org/pypi/cx_Oracle/5.2.1 여기서 받아다가 설치

설치할 때 32/64비트 그리고 파이썬 버전을 잘 맞춰야된다.
오라클 버전도..

며칠 지났다고 기억이 안나네

Python 2.7 – Useful modules

1. Nose

https://pypi.python.org/pypi/nose/1.1.2

nose extends unittest to make testing easier

2. Numpy

http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/

3. SciPy

http://sourceforge.net/projects/scipy/files/scipy/0.10.0/

4. MathPlotLib

http://matplotlib.org/

5. PyFtpdLib

https://code.google.com/p/pyftpdlib/

6. Paramiko

python ssh lib

7. BeautifulSoup4

CentOS – manually installed python with Postgresql lib(psycopg2)

 

파이썬 기본버전이 아닌경우 경로를 명시해서 실행해주면 된다.

ex) /opt/bin/python, /opt/bin/easy_install

 

yum install python-devel postgresql-devel

c헤더가 필요하데

MacOSx에서 port 이용하여 Python Django 설치

easy_install django
pip install django…
등도 사용가능하지만.. port만을 사용해서 설치하도록 한다.
다른것들도 다 port로 설치했으니까 일관성잇게

$ sudo port selfupdate
$ sudo port install python27
$ sudo port install py-django python27-django
$ sudo port install py-django-nose python27-django-nose
$ sudo port install py-django-extensions python27-django-extensions

확인하는 방법

여기서 안된다 보통…. no module 어쩌고 에러 발생한다.

그러면 파이썬 기본 버전을 설정해준다.

이거 했는데도 안되네…urandom이 없다네…

sudo port install py27-*

….를 해버렸는데도 안되네…

sudo port install opencv

이제된다.끝.

Python Script를 C/C++ 코드에서 실행시키기

이런 기능을 전문용어로 Embedded Python이라고 한다.

대충 이런 이름의 패키지를 설치해주면 관련 라이브러리가 함께 설치된다.
python-dev, python-devel, python2.7-dev

파이썬 도큐먼트에 친절하게도 샘플코드가 제공되고 있다.

test.c라는 파일을 생성한다.

리눅스에서 컴파일하는건 참… 힘든일이다.

Ctrl+F5누르면 자동으로 되는거라고 배운 사람들에게는

하다보면 익숙해지겠지
오브젝트 파일까지만 생성되는거
# gcc -pthread -fno-strict-aliasing -fwrapv -Wall -Wstrict-prototypes -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c test.c -o test.o 

실행파일이 생성되는거
# gcc -I/usr/include/python2.7 ptest.c -lpython2.7

컴파일을 하고 링크를 해야되잖아… libpython2.7.so를 써야되니까 gcc에 -lpython2.7을 써주면 되는거야

 

Python 리눅스 배포하기

파이썬 이외 파일 다 지우고, 모두 다 컴파일 후, py소스코드 파일 지우기

파이썬 소스코드 배포하면 안될경우 이렇게 한다.

단, 이렇게 하려면… .실행시킬 때 python main.py가 아닌 python main.pyc로 명령어를 만들어놔야한다.

 

python 프로세스 목록 얻기, 숫자세기

파이썬으로 멀티스레드 대신 OS에 프로세스를 돌리는 프로그램을 만들게 된다면… 쓰게되는 코드

http://andreinc.net/2010/11/07/how-to-get-the-active-process-list-on-a-linux-machine-using-python/

http://stackoverflow.com/questions/1091327/processlist

http://stackoverflow.com/questions/884650/how-to-spawn-parallel-child-processes-on-a-multi-processor-system

http://www.linux.co.kr/home/lecture/index.php?cateNo=&secNo=&theNo=&leccode=214

http://www.seobangnim.com/zbxe/?document_srl=836

나중에 정리해놔야지 라고 하지만…언제할지…

 

 

Mac Port를 이용한 개발환경 셋팅시 설치 목록

py27 py27-django py27-django-nose php5 php5-devel

 

~/.profile 요 파일에 다음을 추가해준다. port는 다음 경로에 설치를 하기 때문에.. 패쓰를 따로 잡아줘야한다.(콜론임::, 세미콜론 아님;;)

export PYTHONPATH=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python:/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages:$PYTHONPATH

이 파일 인식시키기

source ~/.profile

import sys
sys.path 해보면 새로 등록한 디렉토리가 인식이 된다.
import django도 인식이 된다

Python Mysql 한글깨짐 인코딩 문제 해결.

 

 

기타 인코딩 방법에

import codes

unicode(‘encoding target string’, ‘utf-8’).encode(‘euc-kr’)

과 같이 하는 방법도 있다.

이것은 텍스트를 인코딩 하는 방법으로 타겟 db와의 연동시에는 별도의 과정이 들어가는 것 같아. 그래서 위으 박스와 같은 과정을 거쳐야한다.

 

end.

Python ConfigParser .properties .ini .cfg와 같은 설정파일 읽는 라이브러리

파이썬에서는 설정파일을 쉽게 읽게 해 주는 라이브러리가 있다.

이런식으로…

샘플 코드는 여기 잘 나와있다.

http://docs.python.org/library/configparser.html

이 포스팅에는 기초적인 사용법만 써놓는다.

 

설정파일(server_config.cfg)

코드

이걸로 끝. 파이썬 참 쉽다.

 

주의할점…

이 코드는 버그없이 잘 돌아간다. 이게 돌아가지 않는다면 잘못된것은 나! 라는 것을 잊지말자

보통 다음의 상황중의 하나일 것이다 1번은 내가 겪은 상황..

상황1. server.ini.txt 와 같은 형태로 저장되서 mac finder상에서는 .txt가 보이지 않았다. – 윈도우에서도 비슷한 일을 겪을 수 있을 것이라는 생각이 든다.

상황2. 그냥 파일명을 잘못쳤다.

상황3. 윈도우에서 c:\game\play 와 같이 잘못된 경로를 표시했다. 윈도우에서 슬러시 표기가 먹히는지 모르겠지만 역슬러시는 더블역슬러시로 해야 될 것이다. 내 오류 검색하다가 같이 발견한 오류