본문 바로가기

공부/코딩

[python/macOS] vscode에서 pyenv가상환경 파이썬 지정하기

반응형

문제

pyenv 로 가상환경 qiskit10을 만들어놓고 터미널에서 activate 한 다음 vscode를 실행시켰는데, .ipynb파일에서 qiskit10의 파이썬이 사용되지 않고 원래 선택되어있던 로컬 파이썬(qiskit46)으로 실행되었다.

 

<터미널에서 실행한 코드>

% pyenv versions
  system
  3.12.3
  3.12.3/envs/env3123
  3.12.3/envs/qiskit10
  env3123 --> /Users/name/.pyenv/versions/3.12.3/envs/env3123
* qiskit10 --> /Users/name/.pyenv/versions/3.12.3/envs/qiskit10 (set by PYENV_VERSION environment variable)

% pyenv activate qiskit10
% code .

 

<vscode의 .ipynb파일 상에서 실행한 코드>

!which python
#   /Users/name/Documents/qiskit/Quantum-Computing/qiskit46/bin/python
!which python3
#   /Users/name/Documents/qiskit/Quantum-Computing/qiskit46/bin/python3
!pyenv activate qiskit10
#   Failed to activate virtualenv. Perhaps pyenv-virtualenv has not been loaded into your shell properly. Please restart current shell and try again.

 

해결방법

zprofile 에 아래의 행을 추가해주었다. (차이점은 잘 모르지만, zshrc 파일에 추가해도 상관없을 것 같다.)

% cat ~/.zprofile 
#  ...
#  eval "$(pyenv init --path)"

 

참고로 zshrc파일에는 아래의 pyenv 설정 행을 추가해둔 상태였다.

% cat ~/.zshrc
#   ...
#   export PYENV_ROOT="$HOME/.pyenv"
#   export PATH="$PYENV_ROOT/bin:$PATH"
#   export PATH="$PYENV_ROOT/shims:$PATH"
#   eval "$(pyenv virtualenv-init -)"
#   eval "$(pyenv init -)"

 

 

참조 : https://github.com/pyenv/pyenv-virtualenv/issues/401

반응형