본문 바로가기
language/Python

[Python] PIP란? Virtualenv란? 개념,활용

by 스파이디웹 2021. 9. 24.
728x90

이번 포스트는 Python 에서 중요한 부분인 패키징에 대해서 그 중에서도 PIP와 virtualenv가 무엇이고 어떻게 활용 하게 되는지에 대해 알아보겠습니다.


1. PIP란?

  • pip는 Python Package Index (PyPI) 저장소로부터 파이썬 패키지를 받아 설치하는 패키지 관리 도구
  • PyPI는  third-party 파이썬 오픈소스 패키지들을 위한 저장소
  • PIP와 대응되는 개념은 Ruby(RubyGems), PHP(Packagist), Perl(CPAN), Node.js(NPM)
  • 보통의 pip install (package)를 통해 package를 설치하게 되면, 아나콘다의 경우, C:\Users\유저\Anaconda3\Lib\site-packages/package 와 같은 형태로 설치가 된다.
  • pycharm의 경우 C:\Users\유저\PycharmProjects\pythonProject\venv\Lib\site-packages/package 와 같은 형태로 설치된다.
    • site-packages 내부에 패키지가 설치되면, 파이썬 프로그램에서 이 패키지를 임포트해서 사용할 수 있게됩니다

2. virtualenv란?

  • 대부분의 경우 패키지를 글로벌하게 설치하지 않아야 한다.
  • virtualenv가 여러개의 파이썬 프로젝트가 하나의 컴퓨터에서 충동을 일으키지 않고 존재할 수 있도록 도와준다.(독립된 가상공간)

3. virtualenv가 필요한 이유(역할)

  • 같은 패키지가 2 개의 프로그램에서 필요하다고 가정, 구 버전의 라이브러리를 사용하던 A 프로그램이 있었는데, 독립된 공간인 virtualenv에 패키지를 설치하지않고 그냥 pip install (packages) 를 통해 global site-packages에 전부 설치되게 되면, 해당 라이브러리를 필요하에 upgrade했을 시에 B프로그램은 잘 작동하지만, A프로그램은 오류가 나는 상황이 발생될 수 있습니다.
  • 결국엔 버전의 호환성을 맞추기 위함
  • virtualenv 도구를 이용해 생성된 pip 복사본을 이용해 PyPI로 부터 패키지를 설치하면, virtualenv 폴더 내부의 site-packages 폴더에 이를 설치, 그리고 설치된 패키지는 이전과 동일한 방법으로 파이썬 프로그램 내부에서 사용가능

4. virtualenv를 설치하는 방법

  • linux의 환경일 경우 virtualenv 패키지를 global하게 pip로 설치해야한다.(pip 또한 global하게 설치되어야 하는 패키지중 하나) - sudo pip install virtualenv
  • pycharm 과 같은 툴을 사용할 경우 pipenv, venv등 virtualenv를 구성 할 수 있는것이 내재되어 있어, project를 생성하면서 virtualenv를 구성할 수 있다.

5. virtualenv를 생성 하는 방법

  • linux에서는 프로젝트의 루트 폴더로 이동 후, virtualenv 가상환경이름 명령어를 통해 가상환경을 생성하면됩니다.

  • cd 가상환경이름/bin -> source activate -> 가상환경 접속완료

  • linux에서 virtualenv를 생성하게되면 더이상 sudo pip install이 아닌 pip install로 사용해도 global이 아니기에 슈퍼유저권한이 필요없게 됩니다.

  • pycharm의 경우 프로젝트를 생성하면서 virtualenv를 생성하는 옵션이 포함되어 있어 선택해주면 됩니다.

 

728x90

댓글