2021. 10. 14. 09:12ㆍ언어/Python
시작하기 전에
프로젝트마다 가상환경을 구축해서 개발한다는 개념이 생소했다.
물리적인 구성이 달라서 가상머신(VMWare)를 이용해서 개발은 해봤는데 파이썬은 프로젝트별 설치환경을 개별관리하기 위해 가상환경을 구축한다니
C#에서는 왜 듣보을까 찾아봤다.
검색결과가 한 개 나왔는데 질문과 답을 공유한다. (link)
Q. Visual studio의 C++, C#도 프로젝트별로 VC2008, VC2010 개발환경.. 이렇게 각각 프로젝트 폴더 별로 다르게 구성하는 방법이 있을까요?
VMWare에서 여러개의 가상환경을 구축해서 관리하고 있는데 힘들다요.(극공ㅠㅠ)A1. 그런 것과 동등한 기능은 없다.
단지 단일 소스 코드 파일을 두고 각각의 프로젝트에서 해당 소스 코드를 링크 추가하는 식으로 구현할 수 있다.💡️ 내생각 : 이건 생각보다 힘들 것 같다. Visual studio 2008, 2010, 2017 호환 자체가 안됐던 걸로 기억한다. 그래서 VS 2008에서 개발한 코드는 VS2017에서 못 열었다. (좀 되서 확실하진 않음..고수들은 모든 다 가능할듯.)
A2. Visual Studio에서 생성하는 프로젝트 그 자체가 고립된 개발 환경이다.
컴파일러도 여러 버전의 Visual studio 를 모두 설치해도 간섭 없이 잘 작동하고, 프로젝트별 설정에서 컴파일 옵션, 디버깅, 인코딩, SDK, 프레임워크, 라이브러리등 설정을 한다.💡️ 내생각 : 이건 동일한 버전의 VS에서 개발할 때를 얘기하는 것 같다.
VS2017에서 닷넷프레임워크4.0, 4.6 등 다양한 버전의 프로젝트를 개발할 수 있는 것처럼. 그래서 라이브러리 + 프레임웤 버전을 따로 가상환경을 만들어 줄 필요가 없었다.
**위의 내용은 뇌피셜이기 때문에 잘못된 내용이 있을 수 도 있습니다
파이썬 가상환경을 사용하는 이유
프로젝트 별로 분리된 버전 및 패키지 설치 환경을 가지기 위해서.
- 프로젝트 별로 독립적인 파이썬 버전 및 라이브러리가 설치된 개별적인 환경을 가질 수 있기 때문에 개발을 하면서도 관리가 편하지만 나중에 배포관리를 하는데 있어서도 매우 편리하다.
- 대표적인 가상환경 프로그램은 conda와 virtualenv 가 있다.
미니콘다(Miniconda) 🐍️
conda는 미니콘다(Miniconda)와 아나콘다(Anaconda)로 나뉜다.
아나콘다는 720개 이상의 주요 패키지를 한꺼번에 설치해주기 때문에 라이브러리 용량이 매우 커 무겁다.
미니콘다는 최소한의 패키지만 설치한다.
개발하는데 많은 패키지들이 필요하지 않다면 미니콘다를 사용해서 필요한 패키지가 생기면 그때그때 패키지를 추가해서 확장하는 것을 추천한다.
미니콘다 가상환경 설정 명령어
- conda 가상환경 목록을 보는 명령어
conda env list
- conda 가상환경 만들기
#파이썬3 버전의 환경만들기
conda create -n "가상환경이름" python=3.8
- conda 내가 만든 가상환경으로 활성화하기
conda activate "가상환경이름"
- conda 실행된 가상환경 비활성화하기
conda deactivate
- conda 가상환경 삭제하기
conda env remove -n "가상환경이름"
- conda 가상환경 익스포트하기(배포용 yaml만들기)
conda env export> "가상환경이름.yaml"
- conda 익스포트한 가상환경 임포트하기
conda env create -f "가상환경이름.yaml"
* 가상환경명은 프로젝트 명으로 통일하는 것으로 권장
'언어 > Python' 카테고리의 다른 글
TIL21 | Django Tutorials (2) 프로젝트 만들기 (0) | 2021.10.14 |
---|---|
TIL20 | Django Tutorials (1) 초기 세팅 (0) | 2021.10.14 |
TIL16 | Python Modules & Packages, 절대경로와 상대경로 (0) | 2021.10.11 |
TIL15 | Python Set과 Dictionary (0) | 2021.10.11 |
TIL14 | Python List와 Tuple (0) | 2021.10.11 |