Anaconda를 활용해 가상 환경을 만들고 activate해서 필요한 패키지를 깔았는데, jupyter notebook을 실행했을 때 내가 설치한 module을 import하지 못하는 경우가 있습니다.
이 때 해결 방법은 몇 가지가 있습니다.
1) system path 추가
import sys
print(sys.path)
- path내에 나의 env가 포함되어 있는지 확인 후, 만일 포함되어 있지 않다면 현재 노트북이 실행된 PATH가 내 가상환경 쪽이 아니라 전체 Anaconda3 일 가능성이 높습니다. 이 때에는 sys.path에 내 가상환경의 패키지가 설치되어 있는 경로를 강제로 추가해 주어야 합니다.
- 파일탐색기 혹은 shell을 이용해 Anaconda3가 있는 경로에 가서 내 가상환경을 찾고, 그 안에서 패키지들이 설치되어 있는 디렉토리가 어디인지 확인합니다.
!which python
- 위 명령어를 통해 지금 실행하고 있는 파이썬이 어떤 경로에서 실행되는 것인지 확인할 수 있습니다. 그 안에서 envs를 찾아 내 가상환경을 찾고, 패키지가 설치된 디렉토리를 찾습니다. 대부분 아래와 같은 형태일 것입니다.
sys.path.append('{Anaconda3가 있는 경로}/envs/{내 가상환경}/lib/site-packages')
- 이후 다시 sys.path를 확인하고 import가 성공적으로 수행되는지 확인합니다.
.
2) Jupyter Notebook에 가상환경 Kernel 연결하기
- ipynb파일을 실행할 때 'python3' 커널을 기본설정으로 활용하여 실행합니다. 이 때의 커널은 기본 Anaconda3 환경입니다. 내 가상환경 커널을 만들고 그 커널로 파일을 실행하면 import 에러를 해결할 수 있습니다.
- ipykernel 패키지는 Jupyter Notebook 패키지를 직접 설치했다면 이미 설치되어 있습니다. 그러나 없을 경우 conda install합니다.
conda install -c anaconda ipykernel
python -m ipykernel install --user --name {가상환경이름} --display-name "{커널 이름 지정}"
- 이후 Jupyter Notebook을 실행해 보면 직접 지정한 이름의 커널이 커널 선택 시 보입니다. 이 커널을 선택하면 내가 가상환경 내에 설치한 추가 패키지를 정상적으로 import할 수 있습니다.