파이썬에서 가상환경을 만들면 그 안에서 패키지 등을 설치할 수 있고, 이는 해당 가상환경 안에서만 이뤄진 처리로, 가상환경을 비활성화하면 사용할 수 없다.
파이썬의 가상환경을 생성하는 방법은 다음과 같다.
터미널에서 다음과 같은 코드를 입력하면
python -m venv myenv
myenv 라는 이름의 가상환경이 생성된다.
그리고 이 가상환경을 활성화하고 싶으면 터미널에 다음과 같이 코드를 작성한다.
myenv\\scripts\\activate #백슬래시 하나만 써도 됨
이제 터미널에 (myenv) 라는 가상환경 이름이 프롬프트에 같이 뜨게 된다.
만약 이 가상환경을 비활성화하고 싶다면 터미널에 다음과 같이 코드를 작성한다.
deactivate
정상적으로 작동했다면 터미널에 (myenv) 가 사라졌을 것이다.
여기까지 가상환경 생성의 기본적인 구조이다.
그렇다면
python -m venv myenv
이 명령어가 하나하나 무슨 뜻인지 살펴보자.
1. python
- 설명: python은 파이썬 실행 프로그램을 호출하는 명령어이다.
- 기능: 파이썬 인터프리터를 실행하여 파이썬 명령어와 스크립트를 수행한다.
2. -m
- 설명: -m 옵션은 파이썬 모듈을 스크립트처럼 실행하도록 한다.
- 파이썬 모듈을 스크립트처럼 실행하도록 한다는 것은, 해당 모듈을 독립 실행형 스크립트처럼 실행하는 것을 의미한다. 이를 통해 모듈이 가지고 있는 기능이나 코드를 직접 실행할 수 있다.
- 기능: 모듈 이름을 매개변수(parameter)로 받아 해당 모듈의 __main__ 부분을 실행한다. 여기서는 venv 모듈(입력값. argument)을 실행하는 것.
3. venv
- 설명: venv는 파이썬 표준 라이브러리의 일부분으로, 가상환경을 생성하고 관리하는 모듈이다.
- 기능: 가상환경을 생성하여 프로젝트별로 독립적인 파이썬 환경을 제공한다. 각 가상환경은 자체적인 파이썬 인터프리터와 패키지 디렉토리를 갖는다.
4. myenv
- 설명: myenv는 가상환경의 이름이다. myenv가 말고도 원하는 이름으로 변경할 수 있다.
- 기능: venv 모듈이 이 이름을 가진 디렉터리(폴더)를 생성하고, 그 안에 가상환경을 구성한다.
-
디렉터리 구조는 다음과 같다. vscode 왼쪽 탐색기에 myenv 라는 폴더가 생겼을 것이다.
myenv/ ├── bin/ # 실행 파일이 포함된 디렉터리 (Windows에서는 Scripts/ 라고 표현된다!!) ├── include/ # 헤더 파일 디렉터리 ├── lib/ # 파이썬 라이브러리 디렉터리 └── pyvenv.cfg # 가상환경 설정 파일
전체 과정 요약
- 파이썬 인터프리터를 호출함.
- -m 옵션을 사용하여 venv 모듈을 실행함.
- venv 모듈이 myenv라는 이름의 가상환경 디렉터리를 생성.
- 가상환경이 myenv 디렉터리 안에 구성됨.
python -m venv는 venv 모듈을 실행하도록 파이썬에 지시하고, myenv는 가상환경의 이름으로 전달된.
이 명령어를 실행하면, myenv라는 이름의 가상환경이 생성되고, 이 가상환경을 활성화하여 프로젝트별로 독립적인 파이썬 환경을 사용할 수 있게 된다.
venv 모듈
venv는 "Virtual Environment"의 줄임말로, 파이썬 표준 라이브러리의 일부분이다.
이 모듈은 프로젝트별로 독립된 가상환경을 생성하고 관리하는 데 사용된다.
venv 모듈은 프로젝트마다 별도의 파이썬 환경을 설정함으로써, 서로 다른 프로젝트가 서로 다른 파이썬 패키지 의존성을 가질 수 있도록 한다. 이렇게 하면 한 프로젝트에서 패키지를 업데이트하거나 설치하더라도 다른 프로젝트에 영향을 미치지 않는다.
가상환경의 이점
- 독립성: 프로젝트마다 독립된 파이썬 환경을 가질 수 있어, 서로 다른 프로젝트가 서로 다른 패키지 버전을 사용할 수 있다.
- 관리 용이성: 각 가상환경은 프로젝트 디렉토리에만 관련된 패키지를 설치하므로, 관리가 간편해진다.
- 안정성: 시스템 전체에 영향을 주지 않고, 프로젝트별로 필요한 패키지만을 설치하여 프로젝트 간 충돌을 방지한다.
venv 모듈 사용방법
1. 가상환경 생성:
myenv는 생성할 가상환경의 이름이다. 원하는 이름으로 변경할 수 있다.
python -m venv myenv
2. 가상환경 활성화: 체제에 따라 방법이 다르니 주의.
- Linux/MacOS:
source myenv/bin/activate
- Windows:
myenv\Scripts\activate
활성화된 후에는 터미널 프롬프트에 가상환경 이름이 표시된다 (myenv).
3. 패키지 설치: 가상환경 내에서 필요한 패키지를 설치한다.
pip install package_name #패키지 설치
pip list #설치된 패키지 목록 확인
.
.
4. 가상환경 비활성화: 작업이 끝난 후 가상환경을 비활성화한.
deactivate
cf. 파이썬 모듈과 스크립트
- 모듈: 파이썬 파일(.py)로, 함수, 클래스, 변수를 정의하는 데 사용된다. 다른 파이썬 파일에서 import하여 사용할 수 있다.
- 스크립트: 직접 실행 가능한 파이썬 파일로, 명령 줄에서 실행할 수 있는 명령어와 로직을 포함한다.
-m 옵션은 특정 모듈의 __main__ 부분을 실행하도록 한다. 즉, 해당 모듈이 독립적으로 실행될 때 실행되는 코드를 포함하는 부분을 수행한다. 모듈 파일 내에 if __name__ == "__main__": 블록이 있다면, 이 블록 내의 코드가 실행된다.
예시 : venv 모듈을 -m 옵션으로 실행
python -m venv myenv
- 의미: venv 모듈의 __main__ 부분을 실행하여 myenv라는 이름의 가상환경을 생성한다.
다른 모듈 예시
예를 들어, example.py 파일이 다음과 같이 작성되어 있다고 가정
# example.py
def greet():
print("Hello, world!")
if __name__ == "__main__":
greet()
이 파일을 -m 옵션을 사용하여 실행하면
python -m example
example 모듈의 __main__ 부분이 실행되며, Hello, world!가 출력된다.
이를 통해 모듈을 독립적으로 테스트하거나 실행할 수 있다.
'TIL(Today I Learned)' 카테고리의 다른 글
TIL 40일 차 (시퀀스 자료형과 컬렉션 자료형) (1) | 2024.11.29 |
---|---|
TIL 39일 차 (vscode의 기본 터미널) (0) | 2024.11.28 |
TIL 37일 차 (⭐패키지와 모듈 심화, import 키워드로 불러오기) (0) | 2024.11.26 |
TIL 36일 차 (파이썬의 불변 자료형) (0) | 2024.11.25 |
TIL 35일 차 (한글로 파일쓰기: utf-8 인코딩) (0) | 2024.11.24 |