https://github.com/ultralytics/ultralytics/issues/7393
Error compiling python scripts to executable file · Issue #7393 · ultralytics/ultralytics
Search before asking I have searched the YOLOv8 issues and found no similar bug report. YOLOv8 Component Other Bug I am having a problem when compiling python scripts (main.py) to executable. I tra...
github.com
ultralytics 패키지가 포함된 파일을 pyinstaller로 설치파일로 만들 때 AttributeError: 'NoneType' object has no attribute 'encoding' 라는 에러 메시지가 나와서 해당 이슈에 대해 알아보았다.
다행히 최근에 이에 관한 이슈가 논의된 적 있어서 해결법은 빠르게 찾을 수 있었다.
위 링크에 보면 사용자들이 공유한 방법 중에 두가지가 효과가 있다고 하고 실제로 나는 효과를 보고 정상적으로 pyinstaller 실행을 마쳤다.
1. pyinstaller 실행 시 -D 옵션으로 디렉토리 형태로 파일을 생성하면 ultralytics 패키지 폴더에 default.yaml 파일이 사라져 있는데 이 파일을 제자리에 붙여넣는다.
2. ultralytics/utils/__init__.py의 233번째 줄에
sys. stdout=open ('output. txt', 'w', encoding='utf-8 ')
해당 코드를 삽입한다.
위 방법대로 했더니 정상적으로 실행이 되었다.
원인은 pyinstaller의 후크에 ultralytics가 빠져있어서 1번이 해결법이 되었고, 추가로 터미널 환경이 아닌 실행파일에서 ultralytics의 코드가 오류가 발생하는데 2번 해결법이 이를 해결할 수 있다고 한다.
'프로그래밍 > 파이썬 공부' 카테고리의 다른 글
실행 프로그램의 PyTorch가 CUDA를 인식하는 것에 대해서(+ 설치법 링크) (1) | 2024.02.06 |
---|---|
pip freeze로 의존성 패키지들을 기록해 개발환경 복구할 수 있게 하기. (0) | 2024.02.03 |
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. (0) | 2024.02.01 |
pyinstaller 사용법 공부 (0) | 2024.01.25 |
ModuleNotFoundError: No module named 'openpyxl' (0) | 2023.10.26 |