❇️ 결론
pip list --format=freeze > requirement_pip_list.txt
앞으로는 이 명령어를 사용해서 requirements.txt를 관리하자!
(txt 앞 파일명은 마음대로 해도 된다)
❇️ 원래 했던 것
pip freeze > requirements.txt
이 명령어를 내리니 requirements.txt 파일에 이상한 문자열이 들어가 있다
다음과 같은 식으로!
mkl-random @ file:///home/builder/ci_310/mkl_random_1641843545607/work
numpy @ file:///tmp/abs_653_j00fmm/croots/recipe/numpy_and_numpy_base_1659432701727/work
-> 나의 경우 mkl-random, numpy, kobert-tokenizer, six 가 비정상적인 포맷으로 표기되어 있었다
이 상황을 모르던 상태에서
pip install -r requirements.txt
이 명령어를 실행하니 위의 비정상적인 포맷들 때문에 패키지 재설치 시 에러가 났다.
안 그래도 조마조마하던 상태인데 진짜 안 되니깐 눈물이 나는 줄 알았다.
❇️ 문제 발생 원인
블로그들을 찾아보니 'conda install'과 'pip install'을 혼용해
패키지들을 설치하다 보니 발생하는 문제라고 한다.
'pip freeze'를 통해 패키지 목록을 추출할 때,
conda와 pip은 다른 포맷으로 목록을 출력해주기 때문이다.
❇️ 해결 방법
해결 방법은 'pip freeze' 대신 'pip list'를 사용하고,
포맷은 freeze 형태로 지정해주면 된다고 한다
pip list --format=freeze > requirement_pip_list.txt
이 명령어를 사용하면, conda install을 사용하였거나 pip install을 사용한 것과 무관하게
모든 패키지 목록을 정상적으로 추출할 수 있다고 한다
짜잔
이거 보자마자 기분이 참 좋아졌다
아까 문제가 생겼던 패키지들이 정상적으로 포맷된 것을 확인할 수 있다
# 주석처리된 부분은 다른 문제가 생겨서 잠시 주석 처리한 부분이다
나의 구원자 블로그 선생님
[Python] 패키지 배포 리스트 관리 (ft. Requirements.txt 포맷팅 오류)
이번 포스팅이서 다루고자 하는 내용은 Python 소스를 배포하고 구동하는 발생하는 어려움 중 하나의 대해서 이야기 하고자 한다. 결론부터 이야기하면, Python 소스를 배포할 때 사용하는 패키지
richwind.co.kr
'[Programming] > 🚀트러블슈팅' 카테고리의 다른 글
[스프링부트] No converter found for return value of type 에러 (0) | 2023.10.22 |
---|---|
[POSTMAN] POST/PUT 요청을 GET으로 인식하는 에러 (0) | 2023.10.12 |
[Jackson 에러] com.fasterxml.jackson.databind.exc.InvalidDefinitionException (0) | 2023.10.11 |
[intellij] 콘솔창 로그 한글 깨짐 현상 해결하기 (0) | 2023.10.05 |