최근에 사람을 인식하여 모자이크 처리하는 프로그램을 작성하였는데, 실행 파일 만드는 도중 에러가 발생하였다.
진행한 환경은 다음과 같다.
- GPU: NVIDIA GeForce RTX 3070 Laptop GPU
- CUDA: 11.6
- cuDNN: 8.5.0
...
Process producer:
Traceback (most recent call last):
File "multiprocessing\process.py", line 315, in _bootstrap
File "multiprocessing\process.py", line 108, in run
File "detect_ui.py", line 187, in detect
File "utils\torch_utils.py", line 65, in select_device
s = f'YOLOR 🚀 {git_describe() or date_modified()} torch {torch.__version__} ' # string
File "utils\torch_utils.py", line 50, in date_modified
t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime)
File "pathlib.py", line 1232, in stat
FileNotFoundError: [WinError 2] 지정된 파일을 찾을 수 없습니다: 'C:\\Workspace\\mosaic\\utils\\torch_utils.pyc'
확인해보니 utils 폴더에 있는 torch_utils.py 파일의 date_modified 함수에서 경로를 불러오는 부분에서 에러가 발생하였다.
그런데 실행 파일을 만들기 전에는 이런 에러를 본 적도 없었는데, path 변수가 에러가 발생한다고 갑자기 나와서 당황했다.
py 파일로 실행했을 때는 해당 변수 값이 C:\Workspace\mosaic\utils\torch_utils.py 로 나왔었다.
\가 두개씩 붙은 것도 이상하고, 왜 py가 아닌 pyc를 찾는지도 모르겠다. 당연히 pyc 파일은 해당 경로에 없다.
해결법을 검색해보니 PyInstaller를 제거하고 다시 설치하라는 방법도 있었지만 모두 다 소용이 없었다.
대략 6시간을 끙끙대다 뭔가 꼬여도 단단히 꼬인 것 같아서 어쩔수 없이 하드 코딩으로 일단 넘기기로 했다..
아래는 원본 함수이다.
# torch_utils.py [line 48]
def date_modified(path=__file__):
# return human-readable file modification date, i.e. '2021-3-26'
t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime)
return f'{t.year}-{t.month}-{t.day}'
여기 path가 '~~~.pyc'가 나오므로, 마지막 문자열 c를 제거하였다.. 물론 조건문도 추가하여 py 파일이 맞을 때는 넘어가도록 하였다.
def date_modified(path=__file__):
# return human-readable file modification date, i.e. '2021-3-26'
if path[-1:] == 'c':
t = datetime.datetime.fromtimestamp(Path(path[:-1]).stat().st_mtime)
else:
t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime)
return f'{t.year}-{t.month}-{t.day}'
정말 쓰레기 코드지만 일단 급한 불을 끈 뒤, 해당 에러에 대해 자세히 알아보고 글을 추가할 예정이다.
반응형
'Development > YOLO' 카테고리의 다른 글
YOLO cfg 파일에 대한 정보 (0) | 2023.06.19 |
---|---|
YOLO 객체 인식 모자이크 적용 [1?] (2) | 2023.05.24 |
YOLO v7 인식된 물체를 모자이크 하기 (0) | 2022.12.07 |
윈도우 환경 YOLO IndexError: invalid index to scalar variable. (0) | 2022.11.17 |