수업 내용 정리
7월 1일 수업내용을 정리한 내용입니다.
Linux Python Env. (3, 5, 7 ...)
Python Virtual Environment(Isolation)
1) python -m venv v3.3
2) virtualenv
3) pyenv
4) conda
packaging
apache-django
- pips install django, 설치시 {중앙 파이썬 경로}/lib/site-package 폴더 안에 저장된다.
Python 설치(CentOS 6.9) 설치(컴파일)
1-1. 기본 라이브러리 확인
yum -y install openssl yum -y install openssl-devel yum -y install bzip2-devel yum -y install sqlite-devel yum -y install zlib-devel yum -y install libffi-devel
openssl(1.0, 1,2) ---------> 지지부진...
|
|------> libressl -> 2.1 -> 2.6.4 ( python3.7 ) -> 2.9..
3.7.x 버전에서는 libressl 2.6.4 이상이 필요합니다.
wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.9.2.tar.gz tar xfvz libressl-2.9.2.tar.gz ./configure --prefix=/usr/local/ssl ( makefile 만들기: 빌드 환경 설정 ) make ( 컴파일 및 설치 ) make install vi /etc/ld.so.conf.d/ssl.conf(리눅스 공유 라이브러리 위치) 내용 : /usr/local/ssl/lib ldconfig -v | grep ssl ( ssl이 잘 올라갔는지 확인한다 )
- 파이썬 3.7.x 을 성공적으로 컴파일하기 위해서 openssl 을 설치해 주어야 합니다.
- /etc/ld.so.conf.d 에 있는 공유 라이브러리를 전부 메모리에 올린다.
1-2. 파이썬 3.7.3 설치
1) 다운로드
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz tar xfvz Python-3.7.3.tgz ./configure --prefix=/usr/local/cafe24/python3.7.3 --with-openssl=/usr/local/ssl --enable-shared make make install -- 공유라이브러리 로딩 설정 -- vi /etc/ld.so.conf.d/python.conf 내용 : /usr/local/cafe24/pyton3.7/lib ldconfig -v | grep python ( python이 잘 올라갔는지 확인한다 ) ln -s python3.7.3 python3.7
- --with-openssl=/usr/local/ssl: 해당 openssl 가지고 컴파일 해라.
- --enable-shared: python 핵심 모듈 파일은 *.so 파일로 만들어 질 것이다.
- pip 인스톨에 ssl이 사용된다.
vi /etc/profile (PATH 설정) # python3 export PATH=$PATH:/usr/local/cafe24/python3.7/bin source /etc/profile
Python Isolation Tools ( Virtual Environments )
- venv : python3.3 버젼 이후, 부터 기본모듈
- virtualenv : python2 부터 사용해오던 가상환경 라이브러리
- pyenv : Python Interpretor Version Manager
- conda : Anaconda Python 설치했을 때 사용할 수 있다.
- etc : virtualenvwrapper, buildout....
2-1. virtualenv
pip3 install virtualenv ( 중앙 site-package에 설치된다 ) mkdir loganalysis ( 프로젝트 생성 ) cd loganalysis virtualenv venv ( 가상환경 생성 ) source venv/bin/activate ( 가상환경 구동 ) python --version ( 확인 ) deactivate ( 가상환경 나오기 )
- 가상환경: 파이썬 관련 실행. 전역에 설치 하지 않고 프로젝트 내에서 라이브러리 설치 할때 사용.
2-2. python3 -m venv
mkdir loganalysis ( 프로젝트 생성 ) cd loganalysis python3 -m venv venv ( 가상환경 생성 ) (이하 같음)
2-3. 간단한 postgres 연결 모듈 테스트 해보기
cf) postgres < 10.8 인경우 다음사항 확인
cd /usr/lib64
rm libpq.so.5
ln -s /usr/local/cafe24/pgsql/lib/libpq.so.5 libpq.so.5
2-4 pgsql_crud 프로젝트 테스트
1) pycharm에서 pgsql_crud 프로젝트 생성
2) github commit
venv 및 프로젝트 설정 파일 ignore
3) 패키지 의존성 파일 생성
pip freeze > requirements.txt
git commit!
4) linux 에서 git clone 생성
5) venv 생성(isolationize)
virtualenv venv source venv/bin/activate **************
6) 의존성 설치
(venv) pip install -r requirements.txt
7)
(venv) python3 test_crud.py
2-5 pgsql_crud project의 test_crud.py고립시키지 않고 (venv를 사용하지 않고) 실행
export PYTHONPATH='/root/dowork/python-projects/pgsql_crud/venv/lib/python3.7/site-packages'
2-6 python_crawler 프로젝트 테스트
1) 점진적 의존성 체크 확인해보기
pycharm에서 import 하는 방법
settings > Project Interpreter > 설정 > show all ... > 빨간색 뜨는 것 삭제 > (+) 버튼 > venv 추가
궁금한 것
-devel 패키지
- 주어진 라이브러리에 대해 코드를 컴파일하는 데 필요한 모든 파일.
- 해당 라이브러리를 사용하는 응용 프로그램을 실제로 컴파일하려면 해당 응용 프로그램의 인터페이스를 설명하는 헤더 파일(*.h)과 공유 라이브러리(*.so)에 대한 버전없는 심볼릭 링크가 필요합니다.
- makefile은 어디 있을까?
- so, 공유 라이브러리? 윈도우는 dll
- ldconfig 란?
'규린이 IT 개발 > 규린이 필살 정리' 카테고리의 다른 글
[리눅스] apache vhost 멀티포트 서비스 (0) | 2019.07.02 |
---|---|
[리눅스] python 배포 설정 (0) | 2019.07.02 |
[centOS] postgreSQL 설치 (0) | 2019.06.10 |
Apach 설치 (mod_jk 세팅) (0) | 2019.05.31 |
centOS 7 - 하둡(Hadoop) 설치 방법 in VirtualBox (1) | 2019.03.13 |