본문 바로가기
궁금한 기술 이야기/컴퓨터

소소한 기술: Windows 11에 python , Virtualenv, Jupyter notebook 설치

by Old Wooden Table 2021. 9. 16.

windows11에 python을 설치하고 가상 환경을 위한 virtualenv를 설치한 후 jupyter notebook을 설치하는 과정을 다룬다.

1) Python 설치

먼저 Python 설치를 위한 설치 파일을 다운로드한다. Python org에서 Windows용 python 설치 파일을 다운로드 받으면된다. 설치 파일을 다운로드하면 더블 클릭하여 설치를 시작한다. 설치 화면에서 "Path" 생성을 체크하기만 하면 된다. Python 설치가 끝나면 커맨드 창으로 이동하여 설치된 python 버전을 확인한다. 코멘트 창을 실행시키는 방법: windows 키 + R --> cmd 엔터

# Python version 확인
C:\>python --version
Python 3.7.9

Python이 설치되는 경로는 다음과 같다. 파일 탐색기를 사용하여 확인할 때는 파일 탐색기의 "보기" 메뉴에서 "표시" 항목을 선택 후 "숨김 항목" 표시를 선택해야 AppData 디렉토르를 볼 수 있게 된다.  

C:\Users\[UserName]\AppData\Local\Programs\Python\Python37-32

추가적으로 python 코드를 사용해서 python 실행 파일의 위치를 확인할 수 있다. 

C:\>python
>>> import sys
>>> sys.executable
'C:\\Users\\[Username]\\AppData\\Local\\Programs\\Python\\Python37-32\\python.exe'

 

2) virtualenv 설치

가상 환경 virtualenv를 설치하기 전에 pip를 먼저 업데이트한다. 다음의 두 가지 명령 중 하나를 선택하면 된다.

# pip를 최신 버전으로 upgrade
C:\>python -m pip install --upgrade pip

Or...

# pip를 최신 버전으로 upgrade
C:\>pip install --upgrade pip

Virtualenv를 pip를 사용하여 설치한다. 이때 윈도우용 virtualenvwrapper도 함께 설치한다.

# 가상 환경 설치
C:\>pip install virtualenv virtualenvwrapper-win

문제가 없다면 원만하게 설치된다.

 

가상 환경을 만들어 보면 필자의 경우 E 드라이브에 Virtualenv라는 디렉터리에 "python3_7_9_win11" 이름으로 새로운 가상 환경을 만들 예정이다. 가상환경을 만들기 위해 자신이 있는 현재 위치에서 "python -m venv"명령을 다음과 같이 사용한다.

# 가상 환경 생성 명령
c:\>python -m venv /path_to_new_virtual/environment

# E drive의 Virtualenve디렉토리에 python_3_7_9_win11 가상 환경 생성
c:\>python -m venv e:\Virtualenv\python_3_7_9_win11

 

생성된 가상 환경

"python3_7_9_win11"이라는 가상 환경이 Virtualenv 디렉터리에 생성된 것을 확인할 수 있다. 여기서 Lib 디렉터리는 site-package를 위한 곳이며 Scripts 디렉터리는 가상 환경을 activate 하고 deactivate 하기 위한 명령어 스크립트와 python 및 pip 실행 파일이 모여 있는 곳이다.

생성된 가상 환경의 Scripts 디렉토리 내용

 

만약, 가상 환경을 지우고 싶다면 가상 환경 디렉토리를 몽땅 지우기만 된다.  가상환경을 생성하기 위한 참고 사이트는 다음과 같다. https://docs.python.org/ko/3.9/library/venv.html

3) 가상 환경 가동 (activate) 및 중지 (deactivate)

가상 환경을 가동(activate)시키기 위해서는 설치된 가상 환경의 Scripts 디렉터리에서 activate.bat 파일을 실행시키면 되고, 가상 환경을 중지시키기 위해서는 deactivate.bat 파일을 실행시키면 된다.

가상 환경을 activate 시키면 프로프트 앞에 가상 환경 이름이 붙게 된다. 여기서는 (python3_7_9_win11)이 가상 환경 이름이 된다.

# 가상 환경 activation
E:\Virtualenv\python3_7_9_win11\Scripts>activate
(python3_7_9_win11) E:\Virtualenv\python3_7_9_win11\Scripts>

Scripts 디렉토리의 deactivate로 가상 환경을 deactivate 시키면 프로프트 앞에 가상 환경 이름이 없어지게 된다.

# 가상 환경 deactivation
(python3_7_9_win11) E:\Virtualenv\python3_7_9_win11\Scripts>deactivate
E:\Virtualenv\python3_7_9_win11\Scripts>

 

4) Jupyter notebook 설치 및 실행

Jupyter notebook을 설치하기 위해 먼저 가상 환경을 activate 시키고 pip3를 사용해서 jupyter notebook을 설치한다. 설치 동안에 상당히 많은 메시지가 지나가는 것을 볼 수 있다.

# 가상 환경 activation
E:\Virtualenv\python3_7_9_win11\Scripts>activate

# Jupyter notebook 설치
(python3_7_9_win11) E:\Virtualenv\python3_7_9_win11\Scripts>pip3 install jupyter

Jupyter notebook의 실행은 가상 환경이 실행되는 환경에서 명령창에 jupyter-notebook이라고 입력하면 된다.

# Jupyter notebook 실행
(python3_7_9_win11) E:\Virtualenv\python3_7_9_win11\Scripts>jupyter-notebook.exe
// 또는
(python3_7_9_win11) E:\Virtualenv\python3_7_9_win11\Scripts>jupyter-notebook

Jupyter notebook을 실행 시키면 인터넷 브라우저가 실행되고 localhost8888/tree의 화면이 보이게 된다. 그러면 jupyter notebook을 사용할 수 있게 된다.

5) Jupyter notebook 작업 경로 설정

기본적인 jupyter notebook의 저장 및 작업 경로는 jupyter notebook이 실행되는 곳이다. 여기는 각종 실행 파일이 있는 곳이라 자신의 작업물을 관리하기 위해 다른 폴더를 지정해 줘야 깔끔해진다.

기본적인 작업 경로의 설정은 "jupyter_notebook_config.py" 파일의 경로를 수정하면 되지만, 이 config 파일은 사용하기 전에 config파일을 수동으로 생성을 해줘야 한다.

가상 환경을 activate 시키고 "jupyter notebook --generate-config" 명령을 실행하면 "jupyter_notebook_config.py"이 생성된 것을 확인할 수 있다. 여기서 주의할 점은 config 파일이 생성된 디렉터리가 Scripts가 아니다라는 것이다. 이것이 생성된 위치는 명령을 실행하고 나온 결과 메시지에서 확인 가능 가능하다.

# Jupyter notebook configuration 파일 생성
(python3_7_9_win11) E:\Virtualenv\python3_7_9_win11\Scripts>jupyter notebook --generate-config

Writing default config to: 
C:\Users\[Username]\AppData\Roaming\SPB_Data\.jupyter\jupyter_notebook_config.py

Jupyter notebook을 위한 config 파일이 생성된 디렉터리로 이동하면 다음과 같이 config 파일이 생성된 것을 확인할 수 있다. 

jupyter_notebook_config.py

작업 경로를 설정하기 위해 jupyter_notebook_config.py를 메모장에 열고 찾기 기능으로 "directory"를 찾으면 아래와 같이 notebook들과 kernel들을 위한 디렉터리를 지정하는 곳을 확인할 수 있다. 가장 마지막 줄의 주석("#")을 풀고 자신이 원하는 워킹 디렉토리의 경로를 써주면 끝!

## The directory to use for notebooks and kernels.
#  Default: ''
# c.NotebookApp.notebook_dir = ''

 

아래와 같이 주석 #을 삭제하고, 작은따옴표( ' ' ) 사이에 자신이 원하는 디렉토리를 넣어준다. 이때 주의할 점은 디렉토리 경로를 지정할 때 역슬래시("\")가 아닌 슬래시("/")를 사용한다는 것과 맨 마지막에 슬래시("/")를 삽입하지 말 것이라는 것이다. 수정했으면 config파일을 저장하고 닫으면 끝!

## The directory to use for notebooks and kernels.
#  Default: ''
c.NotebookApp.notebook_dir = 'F:/OneDrive/Workstation/Projects/Python'

다시 가상 환경을 activate 시키고 jupyter notebook을 실행시키면 저장 및 작업을 위한 경로가 변경되어 있음을 확인할 수 있다.

6) 필요한 python package 설치

Python으로 작업하기 위한 가상 환경이 만들어졌고, jupyter notebook 또한 설치 됐다면 필요한 python package들을 설치하면 된다. Python package들은 설치할 때 항상 먼저 생각해야 할 것은 가상 환경을 activate시켜 놓은상태에서 pip를 사용하여 설치한다는 것이다. pip는 "pip install [package_name]"을 사용해 간단히 설치 가능하다. 가장 간단한 예로 numpy를 설치한다고 하면 다음과 같이 가상환경을 activate 시키고 "pip install numpy"라고 하면 된다. pip는 자동으로 최신 numpy를 다운로드하고 설치를 하게 된다. 

# 가상 환경으로 이동
E:\>cd Virtualenv\python3_7_9_win11\Scripts

# 가상 환경 activation
E:\Virtualenv\python3_7_9_win11\Scripts>activate

# pip를 사용하여 numpy 설치
(python3_7_9_win11) E:\Virtualenv\python3_7_9_win11\Scripts>pip install numpy
Collecting numpy

  Downloading numpy-1.21.2-cp37-cp37m-win32.whl (11.7 MB)
     |████████████████████████████████| 11.7 MB 305 kB/s
Installing collected packages: numpy
Successfully installed numpy-1.21.2

 

Package들의 설치되는 장소는 가상 환경 디렉터리 하위의 ".\Lib\site_package\"아래에 설치된다. 설치된 package들이 어떤 것들이 있고 이것들의 버전에 대란 "pip list"라는 명령으로 알아볼 수 있다.

# 설치된 package들과 버전정보 확인

(python3_7_9_win11) E:\Virtualenv\python3_7_9_win11\Scripts>pip list
Package             Version
------------------- --------
argcomplete         1.12.3
argon2-cffi         21.1.0
attrs               21.2.0
backcall            0.2.0
bleach              4.1.0
cffi                1.14.6
colorama            0.4.4
debugpy             1.4.3
decorator           5.1.0
defusedxml          0.7.1
entrypoints         0.3
importlib-metadata  4.8.1
ipykernel           6.4.1
ipython             7.27.0
ipython-genutils    0.2.0
ipywidgets          7.6.5
jedi                0.18.0
Jinja2              3.0.1
jsonschema          3.2.0
jupyter             1.0.0
jupyter-client      7.0.2
....