Day3: 실습26 - 실습40

Author

최규빈

Published

January 4, 2024

실습26: 186 컴퓨터에서 깃+깃헙연결하기

- 186에서 깃+깃헙연결할때 어려운점.

  • 토큰을 쳐야한다는게 어려움.
  • 윈도우에서는 직접로그인으로 인증했음. 코드스페이스에서는 별도의 인증과정이 필요없었음.
  • 일반서버에서는 토큰으로 해결해야함. (다른 방법도 있는데 그냥 이게 젤 편함)

- 비밀번호 치는게 귀찮으면?

git config credential.helper store # 이걸실행하고 이후에 한번만 푸시하면 된다. 
git add .
git commit -m . 
git push 

실습27: 작업하던 블로그를 강의실 윈도우로 clone

- 아래를 실행하면 됩니당

git clone {repo-name} # 처음부터 새로만듦

실습28: 블로그 생성원리 이해하기

- 아래를 실행하고 git switch를 사용할시 무슨일이 생기는지 파악

# git add . 
# git commit -m . # 이거 2개가 깃에서의 save 라고 생각하자. 
git switch gh-pages
git switch main 

- 위의 과정을 반복해보면서 폴더를 관찰. 느낀점 서술

- git switch gh-pages한 상태에서 폴더에 존재하는 html파일들을 열어볼 것.

실습29: 블로그 깨기

- git swtich gh-pages한 상태에서 폴더에 존재하는 모든 파일을 삭제 \(\to\) 본인 홈페이지에 가보자. 홈페이지는 살아 있는가?

- 아래를 실행하고 본인홈페이지에 방문해보자. 홈페이지는 살아있는가?

git add . 
git commit -m .
git push

- 왜 죽었다고 생각하는가?

- 깃헙 특수기능 중 하나인 웹페이지 배포능력에 대하여 스스로 이해한 바를 서술해보자.

실습30: 코드를 숨기는 블로그 (야메)

- 주피터다운로드 후 블로그를 만드는 것은 포스트를 엄청 빠르게 만드는 사기적 능력임

- 내가 베낄때는 좋지만 누군가가 내 블로그를 베낀다 생각하면 기분나쁠 수 있음

- 실습29를 응용하여 코드가 없는 블로그를 만들어보자

실습31: 코드를 숨기는 블로그 (합법)

- 의문점: 그런데 작업내용을 블로그에 올릴때 꼭

git add . 
git commit -m . 
git push
quarto publish --no-browser --no-prompt

순서로 업로드 해야하는가? 그냥 단순히

quarto publish --no-browser --no-prompt

만 하면 안되는가? (경험상 되던데요?)

- 코드를 숨길 수 있는 블로그를 만들고 싶다면? 어떻게 하면 좋을지 생각해보자.

실습32: pull + push (잘 쓰면 편해)

- 186 컴퓨터 (혹은 본인이 주로 쓰는 서버 컴퓨터) 에서 pull

- 186 컴퓨터에서 수정 \(\to\) push

- 실습실 컴퓨터에서 다시 pull

- 실습실 컴퓨터에서 수정 \(\to\) push

- 소감:

실습33: pull + push (난 불편해)

- 186 컴퓨터 (혹은 본인이 주로 쓰는 서버 컴퓨터) 에서 pull

- 186 컴퓨터에서 수정 \(\to\) push 안함

- 실습실 컴퓨터에서 수정 \(\to\) push

- 186컴퓨터는 뭐야? \(\to\) push 시도.. \(\to\) 실패

- 해결책:

실습34: gh-pages에서 만들기 싫다면..?

- 생각해보니까 딱히 내 코드가 비밀은 아님

- 브랜치를 쓰는게 이론상 깔끔하긴 한데 막상 쓰려니까 불편함. (그 파일이 순간적으로 없어지는 거잖아요?.. 엄청 찝찝해요)

- quarto publish는 아래동작의 결합이다.

quarto render 
# html파일들이 어딘가 만들어져있음. 
git switch gh-pages
# 만들어진 html파일들이 복사됨. 
git add .
git commit -m . 
git push 
git switch main 

- 아래와 같이 수정하고 싶다면?

quarto render 
# html파일들을 docs라는 폴더에 저장
git add .
git commit -m . 
git push 

그리고 깃헙설정을 변경한다면?

- 하는방법

step1

git push origin --delete gh-pages # 로칼에서 브랜치삭제 + 원격으로 업데이트
git add .
git commit -m .
git push 

step2

_quarto.yml
project:
  type: website
  output-dir: docs # <- 이거 추가하세요
# 이 아래는 수정필요없음 

step3

이후 https://github.com/{user-name}/{repo-name}/settings/pages 로 이동하여 셋팅을 변경하면 된다.

실습35: 파이썬 버전확인하기

- 기본명령

python --version 

- 이걸 이용해서 코랩의 파이썬 버전을 확인해보자.

실습36: 가상환경 py310생성 + pip으로 판다스 설치하고 버전확인

- 우리의 무기1: pip list

pip list 
Package    Version
---------- -------
pip        23.3.1
setuptools 68.2.2
wheel      0.41.2

- 우리의 무기2: conda list

conda list 
# packages in environment at /root/anaconda3/envs/py310:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_openmp_mutex             5.1                       1_gnu  
bzip2                     1.0.8                h7b6447c_0  
ca-certificates           2023.12.12           h06a4308_0  
ld_impl_linux-64          2.38                 h1181459_1  
libffi                    3.4.4                h6a678d5_0  
libgcc-ng                 11.2.0               h1234567_1  
libgomp                   11.2.0               h1234567_1  
libstdcxx-ng              11.2.0               h1234567_1  
libuuid                   1.41.5               h5eee18b_0  
ncurses                   6.4                  h6a678d5_0  
openssl                   3.0.12               h7f8727e_0  
pip                       23.3.1          py310h06a4308_0  
python                    3.10.13              h955ad1f_0  
readline                  8.2                  h5eee18b_0  
setuptools                68.2.2          py310h06a4308_0  
sqlite                    3.41.2               h5eee18b_0  
tk                        8.6.12               h1ccaba5_0  
tzdata                    2023c                h04d1e81_0  
wheel                     0.41.2          py310h06a4308_0  
xz                        5.4.5                h5eee18b_0  
zlib                      1.2.13               h5eee18b_0  

- 판다스의 설치

pip install pandas # 터미널에서 하는게 적성입니다. 나머지 야메에요

- pip list로 확인

Package         Version
--------------- ------------
numpy           1.26.3
pandas          2.1.4
pip             23.3.1
python-dateutil 2.8.2
pytz            2023.3.post1
setuptools      68.2.2
six             1.16.0
tzdata          2023.4
wheel           0.41.2

- conda list로 확인

# packages in environment at /root/anaconda3/envs/py310:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_openmp_mutex             5.1                       1_gnu  
bzip2                     1.0.8                h7b6447c_0  
ca-certificates           2023.12.12           h06a4308_0  
ld_impl_linux-64          2.38                 h1181459_1  
libffi                    3.4.4                h6a678d5_0  
libgcc-ng                 11.2.0               h1234567_1  
libgomp                   11.2.0               h1234567_1  
libstdcxx-ng              11.2.0               h1234567_1  
libuuid                   1.41.5               h5eee18b_0  
ncurses                   6.4                  h6a678d5_0  
numpy                     1.26.3                   pypi_0    pypi
openssl                   3.0.12               h7f8727e_0  
pandas                    2.1.4                    pypi_0    pypi
pip                       23.3.1          py310h06a4308_0  
python                    3.10.13              h955ad1f_0  
python-dateutil           2.8.2                    pypi_0    pypi
pytz                      2023.3.post1             pypi_0    pypi
readline                  8.2                  h5eee18b_0  
setuptools                68.2.2          py310h06a4308_0  
six                       1.16.0                   pypi_0    pypi
sqlite                    3.41.2               h5eee18b_0  
tk                        8.6.12               h1ccaba5_0  
tzdata                    2023.4                   pypi_0    pypi
wheel                     0.41.2          py310h06a4308_0  
xz                        5.4.5                h5eee18b_0  
zlib                      1.2.13               h5eee18b_0  

- 방법3: 파이썬에서

import pandas as pd
pd.__version__

실습37: 저의 가장 최신 흑역사 재현

- 기억하고 싶지 않았음: https://guebin.github.io/DV2023/posts/13wk-2.html

- py310 환경에서 아래의 코드를 실행한다.

df = pd.DataFrame({'A':[2143,2143],'B':['-',3456]})
df.map(lambda x: 0 if x == '-' else x)

- colab 환경의 python과 pandas 버전을 조사하고 유사환경을 만든다.

# 이렇게 하면됩니당
conda create -n co python=3.10.12
conda activate co 
pip install pandas==1.5.3

- 아래의 코드를 실행해보자.

df = pd.DataFrame({'A':[2143,2143],'B':['-',3456]})
df.map(lambda x: 0 if x == '-' else x)

- 학생들 질문: 제 컴퓨터에서는 안되는데요.. 어쩌죠?

  • 답변1: 코랩에서 하세요..

- 학생들 질문2: pip install pandas 해도 안되는데요, 어쩌죠?

  • 답변1: 코랩해서 하세요..
  • 진짜 많이 겪는 상황: 저는 꼭 제 노트북으로 해야겠습니다.. -> 아나콘다 쓰시나요? -> 쓰긴쓰는데…….. -> 환경분리해서 실습했어요? -> ????? -> 제가 볼게요.. (찾아보니까) base에 있음..
  • 답변2: 일단은 pip install pandas -U 해보세요

- 답변2가 적절할까?

- 가장 좋아하는 답변: 환경 새로 파세요

- 최악의 상황

  1. 일단 아나콘다는 깔아놓았음.
  2. 잘 몰라서 (base) 상태에서 이것저것 깔기 시작함.
  3. 교수랑 코드 “똑.같.이.” 쳤는데 내 컴퓨터에서는 안됨.
  4. 교수가 맥이라서 그런가보다 하고 인터넷에서 해결책 찾기 시작함.
  5. 뭐 하라는 대로 해서 이제까지 해결해 왔음. (버전은 점점 엉키기 시작함)
  6. 안되는건 잘하는 선배찾아가서 물어봤는데 귀신같이 해결해줌. (하지만 버전은 점점 더 엉키고 있음)
  7. 그런데 또 문제가 생겼고 이제는 해결못하겠음.
  8. 교수한테 찾아감 -> 교수가 해준다면서 (base)에서 새로운 환경 (py310)을 만들어서 이것저것 시도해 봄.
  9. 성공하면 다행인데, 실패함1
  10. 이건 방법이 없다며 아나콘다를 지우고 재설치 시도. 그런데 윈도우에서는 아나콘다 지우는게 까다로움. (먼가 설정이 자꾸 남아있단 말이에요)
  11. 새로 계정만들어서 아나콘다 설치시도 -> 실패
  12. 교수도 사실 윈도우 잘 모른다고 하면서 회피.
  13. 포맷
  14. 다시 아나콘다 깔고 1-13을 반복함.

- 부작용: 아나콘다 트라우마 발생해서 “리눅스에서 쓰는 모든 명령” 을 (base) 상태에서 실행해야하는지 (py310) 상태에서 실행해야 하는지 알고 싶어하고, 그게 명확하지 않을 경우 두려워함.

- 부작용을 극복하는 방법: 서버사용하세요. 막 쓰세요. 컴퓨터 망가뜨리면 찾아오세요. 모든 자료는 언제든 클론가능하게 깃헙에 저장하세요.

실습38: 여러개의 가상환경 생성

- 가능하면 프로젝트별로 환경을 분리하는게 좋다.

- 하나의 환경에 모든 패키지를 때려밖아 설치하는건 패키지 충돌나라고 기도하는 꼴이다.

실습39: 주피터랩 설정변경

- root유저의 홈에서 ls, ls -a를 쳐보자.

- 들어가서 jupyter_notebook_config.py를 열어보자.

없다면 아래를 이용하여 만들자.

jupyter notebook --generate-config

- 아래의 내용을 변경

c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port = 8888 # 8888아니구요. 본인이 쓸수 있는 포트중에서 좋아하는거 쓰세여 
c.NotebookApp.allow_root = True 
c.NotebookApp.allow_remote_access = True # 당장필요한건 아닌데요.. 해놓으세여 

- 이제 켜보세요..

jupyter lab 

실습40: 주피터랩 평생 켜놓기

- 아래와 같이 하면 됩니다.

nohup jupyter lab --ip="0.0.0.0" --port={MY-PORT} --allow-root > /dev/null 2>&1 &

Footnotes

  1. 4학년쯤에는 이미 (base) 가 손쓸 수 없는 상태로 깨져있는 경우가 허다함. 공부를 열심히 한 학생일수록 그러함. 이럴경우 소생가능성이 없음↩︎