Tag Archives: python

Python Anaconda – 버전관리? 환경구성?

https://conda.io/docs/user-guide/tasks/manage-environments.html

환경 목록

conda info –envs

환경 생성

conda create –name envname python=3.6

 

Activate the new environment:

  • Windows: activate myenv
  • macOS and Linux: source activate myenv

 

환경 삭제

conda remove –name envname –all

설치된 패키지 목록

conda list

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.