🚨 에러코드
{user_path}/my-project % python tests/test_scraper.py
Traceback (most recent call last):
File "{user_path}/my-project/tests/test_.py", line 2, in <module>
from scraper.scraper_parser import parse_html # HTML 파싱 함수
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named '{package}'
ModuleNotFoundError: No module named 'scraper.scraper_parser' 오류는 Python이 package 모듈을 찾을 수 없다는 뜻이다.
🚀 단계별로 실행하면서 오류잡기!!
1. 프로젝트 루트에서 실행하기
먼저 현재 위치가 프로젝트 루트인지 확인하고, 맞지 않다면 경로 이동
cd /Users/my-project python tests/test_scraper.py
2. -m 옵션으로 실행 (패키지 경로 문제 해결)
Python이 scraper를 패키지로 인식하지 못할 때 사용하는 방법
python -m tests.test_scraper
3. PYTHONPATH 환경 변수 설정
Python이 scraper 폴더를 찾을 수 있도록 PYTHONPATH를 설정해본다.
임시 설정 (터미널을 닫으면 사라짐)
export PYTHONPATH=$(pwd) python tests/test_scraper.py
영구 설정 (.zshrc 파일에 추가)
echo 'export PYTHONPATH=$(pwd)' >> ~/.zshrc source ~/.zshrc
이제 다시 실행:
python tests/test_scraper.py
4. sys.path를 직접 추가
테스트 파일(tests/test_scraper.py) 맨 위에 아래 코드를 추가
import sys
import os
# 프로젝트 루트 경로를 sys.path에 추가
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
# 이제 모듈을 임포트
from scraper.scraper_parser import parse_html
그런 다음 다시 실행:
python tests/test_scraper.py
5. venv 문제 해결
가상 환경을 사용 중이라면 올바르게 재실행
1. 가상 환경 비활성화 후 테스트 실행
deactivate python tests/test_scraper.py
2. 다시 가상 환경 활성화 후 실행
source venv/bin/activate
python tests/test_scraper.py
6. Python이 올바른 경로를 검색하는지 확인
Python이 scraper 폴더를 찾고 있는지 확인하려면:
python -c "import sys; print(sys.path)"
출력된 목록에 /{Users}/my-project가 포함되어 있는지 확인!
만약 포함되지 않았다면 sys.path를 수동으로 추가한 뒤 실행:
PYTHONPATH=$(pwd) python tests/test_scraper.py
7. setup.py를 이용한 로컬 패키지 설치
패키지를 로컬에서 설치하면 scraper를 정상작동 가능성 있음
1. 프로젝트 루트에 setup.py 생성 (없다면)
touch setup.py
2. 파일 내용 추가 (setup.py)
from setuptools import setup, find_packages setup( name="my-project", version="0.1", packages=find_packages(), )
3.설치 실행
pip install -e .
4.다시 테스트 실행
python tests/test_scraper.py
📌 최종 점검 리스트
✅ python -m tests.test_scraper 실행
✅ PYTHONPATH=$(pwd) python tests/test_scraper.py 실행
✅ sys.path.append(...) 추가 후 실행
✅ deactivate 후 다시 실행
✅ .zshrc에 PYTHONPATH 추가 (echo 'export PYTHONPATH=$(pwd)' >> ~/.zshrc && source ~/.zshrc)
✅ python -c "import sys; print(sys.path)" 출력값 확인
✅ setup.py로 패키지 설치 (pip install -e .)
..하고싶은말...추신..
슬픈현실이지만... 알고보니 함수명이라고 하나..클래스라고하나 폴더구조화 하고 파일네이밍 변경하면서 잘못들어가있어서 안되는거였....
혼자만 알고싶지만 그냥 자기반성겸 일기를 써본다..
'Dev > Python' 카테고리의 다른 글
🚨[Alembic] 명령어 및 오류 설정확인 (0) | 2025.03.20 |
---|---|
[FastAPI] FastAPI+ Alembic 설정 및 프로세스 정리 (0) | 2025.03.19 |
[Python] Code Formatter 코드포매터 (0) | 2025.03.17 |
[FastAPI] Alembic migrations/env.py 수정하여 특정 테이블 무시 (0) | 2025.03.15 |
[Python] requirements.txt 생성 및 설치 방법 (0) | 2025.03.15 |