파이썬에서 프로젝트를 진행할 때는 각각의 프로젝트 별로 가상환경을 만들어서 진행해 주는 것이 좋다고들 말한다. python 책을 보며 따라할 때는 왜 굳이 가상환경을 생성해줘야하지?라는 의문점이 있었다. 하지만 Django를 이용한 미니 토이 프로젝트를 진행하다 보니 가상환경의 필요성을 알게 되었다.
1. 버전 관리 문제를 해결하는 데 도움을 준다.
python 패키지들은 시간이 지남에 따라 업데이트된다. 특정한 프로젝트 하나를 위해 예전 버전의 패키지를 로컬에 계속 유지하거나 패키지가 업데이트 될 때마다 프로젝트의 코드를 일일이 수정해야 하는 문제가 발생한다.
2. 다양한 프로젝트의 라이브러리끼리의 충돌 방지
프로젝트를 진행하다보면 다양한 라이브러리와 패키지들을 받아서 사용하게 된다. 그러다보면 각 라이브러리끼리 충돌을 하는 경우가 발생하기도 하고, 특정버전의 패키지 버전만 호환하는 경우가 생길 수도 있다. 그렇다고 이 문제를 해결하기 위해 로컬에 있는 패키지 버전과 프로젝트 패키지 버전을 일일이 수작업으로 확인 하기엔 매우 힘들다.
이 두가지 이유로 가상환경을 생성해 실제로 프로젝트에 사용한 패키지들만 설치해야 할 필요성을 매우매우 느꼈다.
어떤 가상환경을 적용할지 고민하던 중에 나는 pycharm이라는 개발환경을 사용하고 있었고, 해당 개발환경에서 가상환경 생성을 손쉽게 할 수 있도록 지원하는 것을 확인했다.
1. PyCharm 소개
PyCharm은 JetBrains의 Python 개발을 위한 강력한 통합 개발 환경으로, 가상환경 관리부터 코드 편집까지 다양한 기능을 제공한다.
2. 가상환경 생성하기
- 프로젝트를 열고 PyCharm 상단 메뉴에서 "File" > "New Project"를 선택한다.
- "New Project" 대화상자에서 "Location"과 "Interpreter"를 설정하고, "Interpreter" 부분에서 "Previously configured interpreter"의 “Add Interoreter” 옵션을 선택한다.
- “Add local interpreter”클릭을 하면 다음과 같은 화면이 나오는데, Location과 Base Interpreter을 선택하고 OK를 누른다음 최종적으로 create를 클릭하면 된다.
3. 가상환경 활성화 및 패키지 설치
- 가상환경이 생성되면 해당 프로젝트에 자동으로 연결되고, 터미널을 연결하면 활성화 된다.
a. 활성화가 되면 다음과 같이 된다.
b. 만약 활성화가 되지 않았다면 다음 명령을 실행한다.
source venv/bin/activate # macOS/Linux
venv\\Scripts\\activate # Windows
- 활성화된 가상환경에서 필요한 패키지를 설치한다:
pip install 패키지명
4. 가상환경 설정 변경
- PyCharm 상단 메뉴에서 "PyCharm" > "Preferences" (macOS) 또는 "File" > "Settings" (Windows)를 선택한다.
- "Project: 프로젝트명" 아래에서 "Python Interpreter"를 찾아 설정을 변경한다.
5. 가상환경 삭제
프로젝트와 관련된 가상환경을 삭제하려면 프로젝트 디렉토리에서 가상환경 폴더를 삭제하면 된다.
파이썬 개발을 위해 가상환경을 사용하면 프로젝트마다 독립적인 환경을 구축하여 의존성 충돌을 피하고, 필요한 패키지를 각각의 프로젝트에 맞게 설치할 수 있다.
'DataScience > Python' 카테고리의 다른 글
Django 챗봇을 EC2에 배포하면서 겪었던 에러 및 고민 (1) | 2024.01.20 |
---|---|
[Python] M1 mac Konlpy(Okt, Kkma, Komoran) 오류 : No JVM shared library file (libjli.dylib) found (0) | 2023.11.20 |
[python] f-string으로 문자열 포맷팅(f-string formatting) (0) | 2023.08.25 |
[python]Python의 .env 파일 생성하기 (2) | 2023.08.10 |
'cp949' codec can't encode character '\u2014' in position 847: illegal multibyte sequence 에러 해결법 (0) | 2023.07.14 |