Skip to main content

Python virtualenv 설정법

소개

서로 다른 파이썬 버전, 프로젝트별로 각 라이브러리가 다르다.
격리된 환경의 파이썬 버전 및 라이브러리 설치가 필요하다.
이를 도와주는것이 virtualenv

basic usage


// install
pip install virtualenv
( 우분투 sudo apt install -y python3-virtualenv )

//생성
virtualenv pip_env --python=python3.9

// 활성화
source pip_env/bin/activate

// 비활성화
deactivate

//가상환경 패키지 경로는 ?
which python


//가상환경 패키지 -> requirements.txt 추출은 ?

pip freeze > requirements.txt
pip install -r ./requirements.txt


이슈 zsh: command not found: virtualenv

# 원인
- 실행파일 경로를 찾을 수 없어서 그렇다. 아래 과정을 통해서 PATH를 등록하자.

# 1.파이썬 bin경로 알아내기
pip3 install 후 설치 경로가 ~/Library/Python/3.9/bin 였다.


# 2. zshrc 파일 수정

nano ~/.zshrc

....
export PATH=/opt/homebrew/bin:$PATH
// 추가됨
export PATH=$PATH:~/Library/Python/3.9/bin

# 3.
source ~/.zshrc

이슈 npm run + virtualenv 조합으로 동작 오류

  • npm 대신 터미널에서 가상환경을 작동시키자.
문제 
{
"name": "indexer",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"virtual:create": "virtualenv pip_env --python=3.9",
"virtual:activate": "source pip_env/bin/activate",
"virtual:deactivate": "deactivate",
"pip:freeze": "pip3 freeze > requirements.txt",
"pip:install": "pip3 install -r ./requirements.txt",
"dev:start": "python main.py",
"docker:build": "docker build -t ehdudtkatka/bt-template:0.1 .",
"docker:run": "docker run -it --rm --name bt-template ehdudtkatka/bt-template:0.1",
"docker:push": "docker push ehdudtkatka/bt-template:0.1"
},
"keywords": [],
"author": "",
"license": "ISC"
}

sudo pip3 freeze > requirements.txt 하면 virtual env의 패키지가 아닌 base python 패키지가 나온다...
+ 주피터 노트북은, google colab을 사용하자.

ref

https://wikidocs.net/16402

Jupyter Docker Server

소개

  • VS Code 에서 주피터 노트북을 사용하고 싶다.
  • 로컬의 가상환경의 python도 좋지만,
  • 외부 홈서버의 python 백앤드서버를 활용하고 싶다.

Docker Compose

# .env
CONTENT_VOLUME_DIR=/Users/dosimpact/Volume/jupyter
TOKEN=your_token_here
---
# docker-compose.yml
version: "0.2"

services:
jupyter:
image: jupyter/scipy-notebook:latest
restart: always
container_name: jupyter
ports:
- "8888:8888"
volumes:
- ${CONTENT_VOLUME_DIR}:/home/jovyan/work
command: start-notebook.sh --NotebookApp.token=${TOKEN}
  • 토큰은 비밀번호 이다.
  • 포트 바인딩은 자유롭게 바꾸어도 좋다.
  • 볼륨 마운트도 필요하다.

VsCode Extension

  • Install Python
    Alt text
  • Install Jupyter
    Alt text

주피터 > 도커 연결

Alt text

  • 오른쪽 상단에 커널 연결 버튼이 있다.
  • 본인이 올려준 서버에 맞추어 연결하면 끝.!