[venv활용] venv를 통한 library version 충돌 해결

YumeIroVillain·2024년 2월 24일
0

개발노트

목록 보기
26/28

개요

MacOS에서는, Python의 경로가 2개다. 상당히 골때리는 부분인데,

  • 내가 깐 파이썬(건드려도됨)
    - /Library/Frameworks/Python.framework
    - /usr/local/bin/python
    - => 이걸 기본 Interpreter 경로로 정함.
  • MacOS가 쓰는 파이썬(건들면ㅈ됨)
    - /System/Library/Frameworks/Python.framework
    - /usr/bin/python

전자를 3.12, 후자를 3.8이라고 가정하자.
나는 후자(3.8)에 numpy, matplotlib가 이미 깔려있는 상황이고,
프로젝트에서는 전자(3.12)를 활용하여 finance 라이브러리를 설치하고자 한다.
numpy와 matplotlib는 3.8에 이미 있으므로, pip는 이미 깔린 라이브러리라고 인지하여 이들을 설치하지 않지만
정작

import sys
print(sys.path)

를 하면, 3.12는 해당 경로를 모른다. 따라서 깔려있는데 접근을 못한다.
여러 해결법이 있겠지만, 나는 프로젝트당 venv를 활용해서 각 프로젝트마다 가상환경을 잡아 독립된 library tree를 확보하는 것으로 해결했다.

cd [프로젝트폴더]
python -m venv BackTester.venv
ll
// BackTester.venv 생성확인

// VSCode상에서 venv 잡는것 확인

// activate venv
source BackTester.venv/bin/activate
pip install matplotlib pandas numpy plotly finance-datareader beautifulsoup4

// 가상환경의 pip는 3.8의 경로를 전혀 모르는 상태이므로, 잘 깔리는 것을 확인할 수 있다.

Terminal 앞단에서, VENV 현황이 소괄호로 나온다.

그리고, 가상환경 여부에 따라 pip 경로자체가 달라지는걸 확인가능하다.

 7279  which pip
 7280  deactivate
 7281  which pip
profile
HW SW 둘다 공부하는 혼종의 넋두리 블로그 / SKKU SSE 17 / SWM 11th

0개의 댓글