파이썬 문법 중 pip freeze를 이용한 패키지 설치, 파일입출력과 예외처리와 Streamlit, git 기본 설정 + 원격 저장소에 push 에 대해 강의가 진행되었다. 휴가를 사용해서 참석하지 못했던 6일차 수업 일일 회고에 미리 정리해둔 부분을 제외하고 새로 알게된 내용과 오늘 발생한 문제점, 해결방안 에 대해서 정리하고자 한다. (Streamlit은 우선 코드만 올려두고 자세한 설명은 따로 카테고리를 빼서 작성하려고 한다)
학습 내용
1. pip freeze로 패키지 한번에 설치하기(requirements.txt, 개발 환경 동일 세팅)
2. file i/o
3. Streamlit
4. git 기본 설정 + 원격 저장소에 push까지
5. 오늘 발생한 문제점
6. 해결방안
1. pip freeze로 패키지 한번에 설치하기(requirements.txt, 개발 환경 동일 세팅)
requirements.txt
💡프로그램의 종속성 관리를 위해 사용하는 파일의 통상적 이름이다. 이 파일에는 프로젝트에서 사용되는 모든 패키지와 버전이 나열되어 있어, 프로젝트를 배포하거나 다른 환경에서 실행할 때 동일한 패키지 환경을 재현할 수 있도록 한다.
- requirements.txt 파일 생성
- 현재 환경에 설치된 모든 패키지와 버전을 담은 requirements.txt 라는 파일을 생성한다.
pip freeze > requirements.txt
- 새 가상 환경 만들기 (VScode 의 cmd 창에서 진행)
python -m venv new_env
source new_env\Scripts\activate
# Windows에서는 new_env\Scripts\activate
# Mac 에서는 new_env\bin\activate
(에러 발생시)
cmd 에서 작업 디렉토리 위치를 Scripts 로 옮겨, activate 라고 입력한다.
- requirements.txt 파일을 이용한 라이브러리 설치
- -r 옵션 뒤에 오는 파일 경로를 읽어 해당 파일 내에 명시된 패키지를 설치한다.
pip install -r requirements.txt
(에러 발생시)

해당 에러 발생 시, 문구 그대로 python.exe -m pip install --upgrade pip 을 입력해주어 업그레이드 후 그대로 진행해주면 된다.
그러면 Python interpreter 설정에 new_env 가 만들어 졌음을 확인할 수 있다.
- requirements.txt 사용 시 주의 사항
- 가상 환경 사용: requirements.txt 파일을 생성하기 전에 가상 환경을 사용하는 것이 좋다. 이는 프로젝트에 필요한 패키지들만 requirements.txt에 포함되게 하여, 불필요한 패키지들이 포함되는 것을 방지한다.
- 패키지 버전 관리: requirements.txt 파일에 포함된 패키지 버전을 고정하면, 환경의 일관성을 유지할 수 있다. 그러나 필요에 따라 버전을 업데이트하는 것도 중요하다.
- 선별적인 설치: 특정 패키지를 무시하거나 선택적으로 설치하고 싶다면, requirements.txt 파일을 편집하여 필요 없는 패키지를 제거하거나 조건부로 설치되도록 설정할 수 있다.
2. file i/o
[추가]
VScode 에서 원하는 파일의 주소를 가져오고 싶을 때
1.해당 파일의 위치에 마우스를 대고 우클릭을 누르고, Reveal in File Explorer를 클릭한다. 아래와 같은 화면이 나올 것이다.

2.형광펜 친 부분의 주소를 복사한다.
3.C:\encore_skn11\python-basic\08_file-io 이런식으로 복사가 될텐데 VScode 에서 ' \ ' 가 있는 곳에 \를 하나 더 추가해준다.('\'는 escape 문자이므로)
4.최종적으로는 이런 형태가 될 것 이다. f = open(' C:\\encore_skn11\\python-basic\\08_file-io','w')
3. Streamlit
main_page.py
#실행할 때 streamlit run main_page.py (*주의* cmd 창에서 실행할 때 main_page 디렉토리 에서 실행해야함)
import streamlit as st
st.title('오늘은 신나는 월요일')
st.header('오늘은 Streamlit 배우는 날~~')
st.subheader('Streamlit으로 만들어 보는 내 사이트')
my_site = st.text_input('오늘 내가 만들어보고 싶은 사이트는?')
st.write(my_site)
if st.button(f'{my_site} 접속하기'):
st.success(f'{my_site}로 접속 중', icon='✌️')
input_page.py
import streamlit as st
st.title('사용자 입력 받기')
nickname = st.text_input("닉네임 입력")
age = st.number_input("나이 입력: ", min_value=13, max_value=80)
options = ["대학생","고등학생","중학생","초등학생"]
selected = st.selectbox("학교 입력",options)
r_options = ["맛집 탐방","영화 감상","음악 감상","사진 찍기"]
choice = st.radio("취미 입력", r_options)
selected_many = st.multiselect("취미가 여러 개라면",r_options)
checked = st.checkbox("개인정보 제공 동의")
if st.button('입력 완료!'):
st.write(f"이름이 뭐에요? {nickname}")
st.write(f"몇 살이야? {age}")
st.write(f"어디 다녀? {selected}")
st.write(f"취미가 뭐야? {choice}")
st.write(f"취미가 여러개야? {selected_many}")
st.write(f"개인정보 제공 동의해? {checked}")
data_page.py
import streamlit as st
import pandas as pd
st.title('게임 캐릭터의 인지도')
data = pd.DataFrame({
"캐릭터" : ["전사","법사","힐러","탱커","랜덤"],
"선택횟수" : [120, 95, 150, 80, 111],
"승률 (%)" : [52, 48, 56, 60, 49],
"인지도 (%)" : [25, 20, 30, 15, 22]
})
st.dataframe(data, use_container_width=True)
# edited_data = st.data_editor(data) #표 안의 값 수정 가능, 수정된 내용을 어딘가에 반영하려면 변수에 저장
# st.write(edited_data)
st.bar_chart(data.set_index('캐릭터')['선택횟수']) #set_index -> 데이터프레임에 관한 것. 특정 컬럼을 인덱스로 지정 ex)캐릭터를 인덱스로, 선택횟수를 값으로
st.line_chart(data.set_index('캐릭터')['승률 (%)'])
fig = data.plot.pie(
y="인지도 (%)",
labels=data["캐릭터"],
autopct="1.1f%%",
figsize=(6,6),
legend=False,
title="캐릭터 별 인지도"
).get_figure()
st.pyplot(fig)
session_state.py
import streamlit as st
st.title('Counter')
if "customer_count" not in st.session_state: #session state : streamlit 모듈이 가진 변수 /세션 자체에 대한 선택값 저장 ?
st.session_state.customer_count = 0
if st.button('손님 한 명 추가요~!'): #Streamlit은 요소와 사용자간의 인터랙션이 생기면 화면을 새롭게 렌더링함. 즉, 화면을 다시 그려주기 때문에 원하는 대로 동작 x
st.session_state.customer_count += 1
if st.button('오늘 장사 끝! 손님 수 초기화!'):
st.session_state.customer_count = 0
st.write(f"지금까지 온 손님 수:{st.session_state.customer_count}")
4. git 기본 설정 + 원격 저장소에 push까지

로컬 레퍼지토리로 이동 후


왼쪽 사진에서 sign in with your browser 클릭
4. 오늘 발생한 문제점

5. 해결방안
해당 에러 발생 시, 문구 그대로 python.exe -m pip install --upgrade pip 을 입력해주어 업그레이드 후 위 1. pip freeze로 패키지 한번에 설치하기(requirements.txt, 개발 환경 동일 세팅) 의 내용을 그대로 진행해주면 된다.
[추가]
VScode 에서 코드에 이모지를 작성하고 싶으면 [ windows 키 + . ] 을 누르면 됨.
'SK Networks AI > 일일 회고록' 카테고리의 다른 글
| [SK네트웍스 Family AI 캠프 11기] 일일 회고 - 9일차(25.02.19 수요일) (0) | 2025.02.19 |
|---|---|
| [SK네트웍스 Family AI 캠프 11기] 일일 회고 - 8일차(25.02.18 화요일) (0) | 2025.02.18 |
| [SK네트웍스 Family AI 캠프 11기] 일일 회고 - 6일차(25.02.14 금요일) (2) | 2025.02.14 |
| [SK네트웍스 Family AI 캠프 11기] 일일 회고 - 5일차(25.02.13 목요일) (0) | 2025.02.13 |
| [SK네트웍스 Family AI 캠프 11기] 일일 회고 - 4일차(25.02.12 수요일) (0) | 2025.02.12 |