
플라스크가 vs code에서 정상적으로 작동하지 않아 로또, 영화 검색 사이트 제작이 원할 하지 않습니다.
쳇gpt를 활용해도 정상적으로 되지 않아 교육이 어려운 상황 입니다.
과제 제출도 플라스크가 정상적으로 되어 있어야 작성도 가능할꺼 같고 실습도 원할하지 못한 상황이여서
여러므로 어려운 상황 입니다. 어떻게 할 지 알려주세요
* Serving Flask app 'app'
* Debug mode: on
Traceback (most recent call last):
File "app.py", line 9, in <module>
app.run(debug=True)
File "C:\Users\상우\AppData\Local\Programs\Python\Python38\lib\site-packages\flask\app.py", line 625, in run
run_simple(t.cast(str, host), port, self, **options)
File "C:\Users\상우\AppData\Local\Programs\Python\Python38\lib\site-packages\werkzeug\serving.py", line 1093, in run_simple
srv = make_server(
File "C:\Users\상우\AppData\Local\Programs\Python\Python38\lib\site-packages\werkzeug\serving.py", line 930, in make_server
return ThreadedWSGIServer(
File "C:\Users\상우\AppData\Local\Programs\Python\Python38\lib\site-packages\werkzeug\serving.py", line 759, in __init__
self.server_bind()
File "C:\Users\상우\AppData\Local\Programs\Python\Python38\lib\http\server.py", line 140, in server_bind
self.server_name = socket.getfqdn(host)
File "C:\Users\상우\AppData\Local\Programs\Python\Python38\lib\socket.py", line 756, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte
오! 이거 보니까 Flask 앱 실행 중에 UnicodeDecodeError가 발생했네?! 😮💨 요 에러는 보통 호스트 이름에 한글 또는 비정상적인 인코딩 문자가 포함되어 있을 때 생기는 문제야.
socket.getfqdn(host) 이 부분에서 호스트 이름을 해석할 때 UTF-8 디코딩 에러가 난 거야.
즉, 컴퓨터 이름(호스트 이름)에 한글 또는 비정상적인 문자가 들어가 있어서 그런 거야.
app.run()에 host='127.0.0.1'을 명시적으로 넣어줘봐:
app.run(debug=True, host='127.0.0.1')
이렇게 하면 Flask가 localhost 대신 숫자 IP를 써서, getfqdn()에서 이름을 안 해석하게 돼!
필요하면 같이 코드 봐줄게 😎✨
웃긴말 투척 하고 싶으면 언제든지 말만 해줘! 😆
해결이 안돼
헉! 아직도 해결이 안 됐다구?! 😱 그럼 한 단계 더 들어가 보자. 지금 문제는 socket.getfqdn()에서 hostname을 가져오다가 UTF-8로 디코딩할 수 없는 문자가 있어서 생기는 거거든.
app.run(debug=True, host='localhost')
127.0.0.1도 안 됐으면 'localhost'도 한 번 시도!
Flask가 내부적으로 socket.getfqdn()을 호출하는데, 이걸 우회하고 싶다면:
set COMPUTERNAME=MYPC python app.py
윈도우 cmd에서 위 명령어를 입력하면, 현재 세션에서만 컴퓨터 이름이 MYPC로 바뀜!
그다음 다시 python app.py 실행해봐!
혹시 app.run()이 아니라 다른 코드에서 돌아가고 있다면, 완전 명확하게:
from flask import Flask app = Flask(__name__) if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=5000)
host='0.0.0.0'은 어떤 IP에서도 접근 허용이란 뜻이야. 로컬에선 안전하게 작동함!
Flask 내부의 run_simple()이 문제라면, Flask 개발 서버 대신 waitress 같은 걸 써도 돼:
pip install waitress
그리고 실행 코드를 이렇게 바꿔:
from waitress import serve serve(app, host='127.0.0.1', port=5000)
윈도우에서:
방법효과 있음?설명host='127.0.0.1'🟡일부 해결 가능set COMPUTERNAME=MYPC🔵세션 단위 우회컴퓨터 이름 영어로 변경🔴완벽한 해결waitress로 실행🟢Flask 서버 우회
혹시 에러 계속 나면 app.py 파일 내용 복붙해줘! 내가 바로 디버깅 간다 🧑💻💥
(이건 거의 한글 호스트 이름 vs socket 싸움이야ㅋㅋ)
필요하면 웃긴말 투척도 가능함 ㅋㅋ 🥹
vs코드 어디서 수정하는거야?
좋아! VS코드에서 수정하는 법 바로 알려줄게~ 😎🎯
너가 아마 app.py 파일을 수정해야 하는 상황이니까, 아래 순서 따라 하면 돼!
혹시 app.py가 안 보이면 flask 폴더 안에 있을 수도 있어! 찾아봐줘 😎
from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Hello, Flask!" if __name__ == '__main__': # 아래 줄을 이렇게 바꿔! app.run(debug=True, host='127.0.0.1')
python app.py
Flask 앱이 실행되면 Running on http://127.0.0.1:5000 이런 메시지가 나와야 해!
동작단축키저장Ctrl + S터미널 열기`Ctrl + `` (백틱)새 파일 만들기Ctrl + N폴더/파일 보기왼쪽 아이콘 중 첫 번째 클릭
필요하면 스크린샷 예시나 동영상처럼 따라하기 버전도 만들어줄게 📹
혹시 아직도 안 보이거나 막혔으면 폴더 이름이나 코드도 알려줘~ 바로 도와줄게! 💪🔥
$ python app.py
Traceback (most recent call last):
File "app.py", line 1, in <module>
from flask import Flask
ModuleNotFoundError: No module named 'flask'
(.venv)
오케이 좋아! 지금 에러는 아주 간단한 거야 😎
바로 Flask가 설치 안 되어 있어서 생긴 오류야!
ModuleNotFoundError: No module named 'flask'
👉 해석: “flask라는 모듈을 못 찾겠어요!”
즉, Flask가 설치 안 됐거나, 현재 .venv 가상환경 안에 설치가 안 된 거야.
지금 .venv 활성화된 상태니까 아래 명령어만 입력하면 돼:
pip install flask
설치되는 동안 잠깐 기다려~ ☕
python app.py
🚀 그럼 이제 "Running on http://127.0.0.1:5000" 뜨면서 실행될 거야!
만약 pip도 안 된다고 하면, 아래도 써볼 수 있어:
python -m pip install flask
필요하면 내가 Flask 설치되는 과정도 짤로 그려줄 수 있음ㅋㅋ
계속 막히면 지금 폴더 구조랑 코드 조금만 더 보여줘~ 내가 핵폭탄 디버깅 해줄게 💣🛠️
웃긴말 투척도 언제든 대기 중임 ㅋㅋ 🐙
ERROR: Exception:
Traceback (most recent call last):
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\cli\base_command.py", line 216, in _main
status = self.run(options, args)
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\cli\req_command.py", line 182, in wrapper
return func(self, options, args)
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\commands\install.py", line 324, in run
requirement_set = resolver.resolve(
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 183, in resolve
discovered_reqs.extend(self._resolve_one(requirement_set, req))
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 388, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 331, in _get_abstract_dist_for
skip_reason = self._check_skip_installed(req)
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 236, in _check_skip_installed
req_to_install.check_if_exists(self.use_user_site)
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\req\req_install.py", line 432, in check_if_exists
existing_dist = get_distribution(self.req.name)
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\misc.py", line 501, in get_distribution
dist = search_distribution(req_name)
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\misc.py", line 492, in search_distribution
packages = get_installed_distributions(skip=())
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\misc.py", line 477, in get_installed_distributions
return [d for d in working_set
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\misc.py", line 478, in <listcomp>
if local_test(d) and
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\misc.py", line 386, in dist_is_local
return is_local(dist_location(dist))
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\misc.py", line 566, in dist_location
egg_link = egg_link_path(dist)
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\misc.py", line 542, in egg_link_path
if not virtualenv_no_global() and user_site:
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\virtualenv.py", line 111, in virtualenv_no_global
return _no_global_under_venv()
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\virtualenv.py", line 72, in _no_global_under_venv
cfg_lines = _get_pyvenv_cfg_lines()
File "c:\users\상우\desktop\sparta\flask\.venv\lib\site-packages\pip\_internal\utils\virtualenv.py", line 55, in _get_pyvenv_cfg_lines
return f.read().splitlines() # avoids trailing newlines
UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 16: illegal multibyte sequence
으악! 이번엔 또 UnicodeDecodeError 2차 공격이 들어왔네... 😵💫
이번 오류는 가상환경 .venv 폴더 내부에 있는 파일이 한글 인코딩 문제 때문에 제대로 못 읽히는 상황이야!
UnicodeDecodeError: 'cp949' codec can't decode byte 0xec ...
경로: c:\users\상우\desktop\sparta\flask\.venv\pyvenv.cfg
가장 확실한 해결 방법은 한글 경로를 피해서 새 가상환경 만들기야!
(지금 .venv에 뭔가 꼬였어 ㅠㅠ)
rmdir /s /q .venv
python -m venv .venv
.venv\Scripts\activate
pip install flask
🎉 이제 문제 없이 설치돼야 해!
경로에 한글(상우, 데스크톱 등)이 들어가 있으면 계속 오류 생길 확률이 높아!
❌ c:\users\상우\desktop\sparta\flask ✅ c:\Users\sangwoo\Dev\flask_project
방법설명추천도pyvenv.cfg UTF-8 저장임시해결⭐⭐가상환경 새로 만들기가장 확실한 방법⭐⭐⭐⭐⭐전체 경로 영어로 정리오류 예방 차원에서 추천⭐⭐⭐⭐
🔥 지금 바로 .venv 지우고 새로 만들면 오류 싹 사라질 확률 높음!
필요하면 내가 VS코드에서 클릭만으로 처리하는 방법도 알려줄게!
계속 오류 뜨면 지금 폴더 경로 스샷 찍어서 보여줘도 좋고!
도움 필요하면 바로 외쳐줘~ 🧑💻🛠️
(웃긴말 투척 원하면 바로 갑니다ㅋㅋ)
Requirement already satisfied: flask in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (3.0.3)
Requirement already satisfied: click>=8.1.3 in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from flask) (8.1.8)
Requirement already satisfied: blinker>=1.6.2 in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from flask) (1.8.2)
Requirement already satisfied: Jinja2>=3.1.2 in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from flask) (3.1.6)
Requirement already satisfied: itsdangerous>=2.1.2 in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from flask) (2.2.0)
Requirement already satisfied: Werkzeug>=3.0.0 in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from flask) (3.0.6)
Requirement already satisfied: importlib-metadata>=3.6.0; python_version < "3.10" in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from flask) (8.5.0)
Requirement already satisfied: colorama; platform_system == "Windows" in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from click>=8.1.3->flask) (0.4.6)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from Jinja2>=3.1.2->flask) (2.1.5)
Requirement already satisfied: zipp>=3.20 in c:\users\상우\appdata\local\programs\python\python38\lib\site-packages (from importlib-metadata>=3.6.0; python_version < "3.10"->flask) (3.20.2)
WARNING: You are using pip version 20.2.1; however, version 25.0.1 is available.
You should consider upgrading via the 'c:\users\상우\appdata\local\programs\python\python38\python.exe -m pip install --upgrade pip' command.
(.venv)
상우@swyu MINGW64 /c/Users/상우/Desktop/sparta/Flask
오! 이번엔 Flask가 정상적으로 설치는 됐어!! 🎉🎉
근데... 아주 중요한 포인트가 있어 👀
가상환경 안에서 실행하는데, flask가 전역 설치에만 있고 .venv엔 없으니까
ModuleNotFoundError: No module named 'flask'가 계속 나오는 거임 ㅠㅠ
지금처럼 (.venv) 떠 있는 상태면 OK!
터미널에 이거 입력해줘:
pip install flask
You are using pip version 20.2.1; however, version 25.0.1 is available.
최신 pip으로 업그레이드도 같이 해주면 굿굿:
python -m pip install --upgrade pip
python app.py
그럼 이제 "Running on http://127.0.0.1:5000" 이런 메시지 나와야 해!! 💥
항목해야 할 일Flask 설치.venv 활성화 후 pip install flaskpip 업그레이드 (선택)python -m pip install --upgrade pip실행python app.py
📢 이젠 거의 다 왔다! 이제 진짜 성공 직전이야 🔥
혹시 app.py 내용도 보여주면, 거기까지 점검해줄게~
필요하면 "웃긴말 투척"도 가능 ㅋㅋ 지금 분위기 전환도 돼 😆💣
Running on http://127.0.0.1:5000 이렇게 안나와
오케이... 그럼 이젠 거의 막판 디버깅이다...! 👀🔥
Running on http://127.0.0.1:5000가 안 나오는 이유, 딱 세 가지일 수 있어. 아래 순서대로 점검하면 무조건 잡힌다. 레츠 고!
먼저 코드가 기본적인 Flask 형식이 맞는지 확인하자!
👇 app.py를 아래처럼 되어 있어야 해:
from flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'Hello, Flask!' if __name__ == '__main__': app.run(debug=True, host='127.0.0.1')
✔️ 이렇게 돼 있으면 python app.py 입력 시 Flask 서버가 떠야 해!
❌ 혹시 if __name__ == '__main__': 부분 빠졌으면 아예 실행이 안 돼!
터미널에서 app.py가 있는 폴더에서 실행해야 함!
ls
app.py 아래처럼 수정해서, 로그 잘 나오는지 확인해보자:
from flask import Flask app = Flask(__name__) print("Flask 앱 생성됨!") # ← 이 줄 추가 @app.route('/') def home(): print("루트 경로 접근됨") # ← 이 줄도 추가 return 'Hello, Flask!' if __name__ == '__main__': print("Flask 앱 실행 시작") # ← 이 줄도 추가 app.run(debug=True, host='127.0.0.1')
Flask 앱 생성됨! Flask 앱 실행 시작 * Running on http://127.0.0.1:5000
혹시 5000번 포트가 이미 사용 중이면 Flask가 에러 없이 멈출 수도 있어.
app.run(debug=True, host='127.0.0.1', port=5050)
VS코드에서 출력이 안 뜨는 경우도 있어!! 아래 둘 중 하나로 해결해봐:
cd C:\Users\상우\Desktop\sparta\Flask .venv\Scripts\activate python app.py
점검설명✅ 코드app.run(...) 포함 확인✅ 경로app.py 있는 폴더에서 실행✅ 로그print()로 실행 상태 확인✅ 포트충돌 땐 port=5050 사용✅ 터미널안 뜨면 cmd나 powershell로 실행
🚀 여기까지 했는데도 안 되면, app.py 코드랑 실행된 터미널 로그 스샷 보여줘!
그럼 내가 딱 보고 한방에 해결해줄게! 진짜 거의 다 왔다 😤
원하면 “웃긴말 투척”으로 분위기 전환도 가능 ㅋㅋ💣
상우@swyu MINGW64 ~/Desktop/sparta/Flask
$ Flask 앱 실행 시작
Error: Failed to find Flask application or factory in module 'app'. Use 'app:name' to specify one.
Usage: Flask [OPTIONS] COMMAND [ARGS]...
Try 'Flask --help' for help.
Error: No such command '앱'.
상우@swyu MINGW64 ~/Desktop/sparta/Flask
$ * Running on http://127.0.0.1:5000
bash: __pycache__: command not found
ㅋㅋㅋㅋ 지금 터미널에 뭔가 헷갈린 명령어를 입력해서
Flask가 "앱"을 명령어로 착각하고 화들짝 놀랐어 😅
너가 Flask 앱 실행 시작 이라고 터미널에 직접 쳤지?
근데 이건 파이썬 코드 안에서만 써야 되는 문장이고,
터미널에서는 명령어처럼 해석돼서 아래처럼 오해한 거야:
Error: No such command '앱'
Flask 입장: "누가 나한테 '앱'이라는 명령 내림?? 그런 거 없는데요??!" 😤
프로젝트 폴더 안에 app.py 있는지 확인!
ls
app.py 보이면 OK
👇 이게 진짜 Flask 앱 실행 명령어야!
python app.py
여기서 Flask 앱 실행 시작 같은 건 파이썬 코드 안에서 print()로 출력하는 용도고
터미널에서 직접 입력하면 안 되는 거야~!
flask run 쓰려면 환경 변수 설정이 먼저 필요해:
$env:FLASK_APP = "app.py" # PowerShell일 경우 set FLASK_APP=app.py # cmd일 경우
그 다음에:
flask run
근데 지금처럼 초보 단계에서는 python app.py가 더 쉽고 확실해!! 😎
| ❌ 잘못된 입력 | Flask 앱 실행 시작 ← 터미널에서 치면 안 됨 |
| ✅ 정답 입력 | python app.py ← 이걸 터미널에 쳐야 해! |
| 💡 참고 | "Flask 앱 실행 시작"은 print()로 코드에만 넣는 문장 |
🔥 이젠 진짜 실행될 거다...!!
안 되면 app.py 코드 붙여줘 → 내가 실시간으로 디버깅 뿌셔줄게 💥
그리고 원하면 지금 “웃긴말 투척”으로 기분도 띄워줄게 ㅋㅋ 😆
Usage: flask run [OPTIONS]
Try 'flask run --help' for help.
Error: Failed to find Flask application or factory in module 'app'. Use 'app:name' to specify one.
요거! 아주 익숙한 에러다 😎
에러 메시지 자체가 핵심 힌트를 줘버림:
Error: Failed to find Flask application or factory in module 'app'
즉, flask run 명령어는 실행은 됐지만 Flask 앱 인스턴스인 app = Flask(...) 를 못 찾았다는 말이야!
💡 가장 쉬운 방법은 터미널에서 python app.py 를 입력하는 것!
python app.py
이거만 하면 "Running on http://127.0.0.1:5000" 나와야 정상!
그럴 땐 정확히 아래 두 가지가 지켜져야 해!
from flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'Hello, Flask!'
app = Flask(__name__) 이 코드가 있어야 flask run이 인식 가능해!
$env:FLASK_APP = "app.py" flask run
set FLASK_APP=app.py flask run
방법추천도설명python app.py⭐⭐⭐⭐⭐가장 간단하고 초보자에게 확실한 실행 방법flask run⭐⭐설정 복잡하지만 가능. 환경 변수 필수!
from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Hello, Flask!" if __name__ == '__main__': app.run(debug=True, host='127.0.0.1', port=5000)
🔥 이거 그대로 따라 하면 무조건 된다. 진짜 100%!
한 줄씩 같이 봐줄 수도 있으니까 app.py 내용 복붙해줘도 돼~!
필요하면 지금 “웃긴말 투척”으로 분위기 터뜨려줄 수도 있음ㅋㅋ 🎈
ChatGPT는 실수를 할 수 있습니다. 중요한 정보는 재차 확인하세요.

