Day3: 실습26 - 실습40
실습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: 코드를 숨기는 블로그 (야메)
- 주피터다운로드 후 블로그를 만드는 것은 포스트를 엄청 빠르게 만드는 사기적 능력임
- https://scikit-learn.org/stable/auto_examples/index.html
- https://matplotlib.org/stable/gallery/index.html
- 내가 베낄때는 좋지만 누군가가 내 블로그를 베낀다 생각하면 기분나쁠 수 있음
- 실습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가 적절할까?
- 가장 좋아하는 답변: 환경 새로 파세요
- 최악의 상황
- 일단 아나콘다는 깔아놓았음.
- 잘 몰라서 (base) 상태에서 이것저것 깔기 시작함.
- 교수랑 코드 “똑.같.이.” 쳤는데 내 컴퓨터에서는 안됨.
- 교수가 맥이라서 그런가보다 하고 인터넷에서 해결책 찾기 시작함.
- 뭐 하라는 대로 해서 이제까지 해결해 왔음. (버전은 점점 엉키기 시작함)
- 안되는건 잘하는 선배찾아가서 물어봤는데 귀신같이 해결해줌. (하지만 버전은 점점 더 엉키고 있음)
- 그런데 또 문제가 생겼고 이제는 해결못하겠음.
- 교수한테 찾아감 -> 교수가 해준다면서 (base)에서 새로운 환경 (py310)을 만들어서 이것저것 시도해 봄.
- 성공하면 다행인데, 실패함1
- 이건 방법이 없다며 아나콘다를 지우고 재설치 시도. 그런데 윈도우에서는 아나콘다 지우는게 까다로움. (먼가 설정이 자꾸 남아있단 말이에요)
- 새로 계정만들어서 아나콘다 설치시도 -> 실패
- 교수도 사실 윈도우 잘 모른다고 하면서 회피.
- 포맷
- 다시 아나콘다 깔고 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
4학년쯤에는 이미 (base) 가 손쓸 수 없는 상태로 깨져있는 경우가 허다함. 공부를 열심히 한 학생일수록 그러함. 이럴경우 소생가능성이 없음↩︎