수업 내용 정리

7월 1일 수업내용을 정리한 내용입니다.

 

  1. Linux Python Env. (3, 5, 7 ...)

  2. Python Virtual Environment(Isolation)

    1) python -m venv v3.3

    2) virtualenv

    3) pyenv

    4) conda

  3. packaging

  4. apache-django

 

  • pips install django, 설치시 {중앙 파이썬 경로}/lib/site-package 폴더 안에 저장된다.

 

  1. 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
    
  2. Python Isolation Tools ( Virtual Environments )

    1. venv : python3.3 버젼 이후, 부터 기본모듈
    2. virtualenv : python2 부터 사용해오던 가상환경 라이브러리
    3. pyenv : Python Interpretor Version Manager
    4. conda : Anaconda Python 설치했을 때 사용할 수 있다.
    5. 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 란?

 

 

 

 

+ Recent posts