【Python/Django】자주 사용하는 명령의 정리(2) <패키지의 인스톨>

【Python/Django】자주 사용하는 명령의 정리(2) <패키지의 인스톨>

2022-10-03 last update

5 minutes reading 장고 pip 파이썬 venv

배경



Python/Django에서 개발을 진행할 때, 자주 사용하는 명령을 정리해 둡니다.

선인들의 지혜를 빌리는 등 해 해결할 수 있었던 것을, 이 자리를 빌려 감사하는 것과 동시에, 대단히 죄송합니다만 자신의 메모로서도, 이쪽에 정리해 둡니다.

환경



(프로덕션 환경)
  • AWS EC2 (Amazon Linux 2)
  • Python 3.7.9 ※2020/12/10 시점의 Amazon Linux2에서의 디폴트
  • 장고 3.1.3
  • PostgreSQL 11.5 ※동상
  • Nginx 1.12 ※ ※ 동일
  • Gunicorn
  • Putty 0.74

  • (개발 환경)
  • Windwos 10 Pro
  • Python 3.9.0
  • 장고 3.1.3
  • PostgreSQL 13.1
  • Nginx 1.19.5
  • Gunicorn
  • Putty 0.74

  • 1. 패키지 소프트웨어 설치



    Python은 "pip"명령을 사용하여 인터넷을 통해 다양한 패키지 소프트웨어를 쉽게 설치할 수 있습니다.
    또한, 어떤 패키지 소프트웨어가 있는지는 PyPI(The Pyhon Package Index)에서 확인할 수 있습니다.

    Python 가상 환경으로 들어가서 다음을 수행합니다.

    터미널
    (venv_<プロジェクト名>)$ pip install django                  最新バージョンをインストールする場合
    (venv_<プロジェクト名>)$ pip install django==3.1.3           指定するバージョンをインストールする場合
    

    설치한 패키지의 버전은 아래에서 확인할 수 있습니다.

    터미널
    (venv_<プロジェクト名>)$ python -m django -- version
    
    3.1.3
    

    다른 패키지 설치(예)



    터미널
    (venv_<プロジェクト名>)$ pip install psycopg2-binary
    (venv_<プロジェクト名>)$ pip install django-allauth
    (venv_<プロジェクト名>)$ pip install pillow
    (venv_<プロジェクト名>)$ pip install selenium
    (venv_<プロジェクト名>)$ pip install boto django-ses
    (venv_<プロジェクト名>)$ pip install gunicorn
    



    모듈 이름
    설명


    psycopg2-binary
    PostgreSQL에 Python에서 접속할 때에 사용하는 드라이버

    장고 알라우스
    로컬 및 소셜 인증을 지원하는 인증 기능 패키지

    pillow
    웹 애플리케이션을 통해 업로드된 정적 파일을 처리할 때 사용하는 패키지

    selenium
    Live Server Test Case 클래스를 사용한 테스트 방법으로 사용하는 패키지 ※별도Chrome용 드라이버가 필요

    장고세
    Amazon SES(Simple Email Service)를 사용하는 데 필요한 패키지

    gunicorn
    (Green Unicorn의 약자) Python의 wsgi (Web Server Gateway Interface) HTTP 서버


    번외편 : pip 자체 업그레이드



    때때로 pip 자체도 버전 업하고 있기 때문에 pip 명령을 실행하면 "업그레이드하십시오!"」라고 부탁드립니다.
    그런 경우에는 다음을 수행합니다.

    터미널
    $ python -m pip install --upgrade pip
    

    2. 설치된 모듈 목록 만들기



    Python 개발 환경에 설치한 모듈을 파일로 내보냅니다.
    그런 다음 내 보낸 파일을 기반으로 프로덕션 환경에 모듈을 설치합니다.

    2-1. 설치된 모듈 목록을 파일로 출력합니다.



    터미널
    (venv_<プロジェクト名>)$ pip freeze > requirements.txt
    

    requirements.txt (예)
    appdirs==1.4.4
    astroid==2.4.2
    beautifulsoup4==4.9.3
    certifi==2020.11.8
    chardet==3.0.4
    colorama==0.4.4
    distlib==0.3.1
    filelock==3.0.12
    idna==2.10
    isort==5.6.4
    lazy-object-proxy==1.4.3
    mccabe==0.6.1
    numpy==1.19.4
    pandas==1.1.4
    Pillow==8.0.1
    pipenv==2020.11.15
    pylint==2.6.0
    python-dateutil==2.8.1
    pytz==2020.4
    requests==2.25.0
    selenium==3.141.0
    six==1.15.0
    soupsieve==2.0.1
    toml==0.10.2
    urllib3==1.26.2
    virtualenv==20.1.0
    virtualenv-clone==0.5.4
    wrapt==1.12.1
    

    2-2. 내 보낸 requirements.txt를 프로덕션 환경의 홈 디렉토리로 전송합니다.



    PuTTYWinSCP를 사용합니다.
    ※ PuTTY를 사용하여 Amazon EC2(Elastic Compute Cloud)에 연결할 때는 "PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결"을 참조하십시오.

    2-3. python 가상 환경으로 들어가서 다음을 실행하여 설치를 실행합니다.



    터미널
    (venv_<プロジェクト名>)$ pip install -r requirements.txt
    


    (관련)



    【Python/Django】자주 사용하는 커멘드의 정리 (1) <가상 환경, 프로젝트, 어플리케이션의 작성>
    【Python/Django】자주 사용하는 커멘드의 정리(3) <PostgreSQL의 조작>
    【Python/Django】자주 사용하는 커멘드의 정리(4)-전편- <프로덕션 운용:Amazon EC2 (Amazon Linux 2)>
    【Python/Django】자주 사용하는 커멘드의 정리(4)-후편- <프로덕션 운용:Amazon EC2 (Amazon Linux 2)>

    (편집 후기)



    설치를 잊어 버리는 경향이 놀랍게도 django-ses입니다.
    테스트 시에는 콘솔에 로그나 메일 내용을 출력시키고 있는 것도 일인입니다만, 어플리케이션 작성을 시작한 지 얼마 안 되면, 마이그레이션시에, 자주 『django-ses가 부족하다! 」라고 화났습니다.
    사용자 인증을 통하거나 문의 폼을 설치하거나 하는 WEB 사이트나 WEB 어플리케이션을 작성할 때는, 반드시라고 말해도 좋을 정도로 django-ses 의 신세가 될 것이므로, 설치하는 패키지에도 의식을 향해, 개발을 추구하고 싶습니다.