-
(tensroflow) pyinstaller사용 후 tensorflow error 해결IT 지식 창고 2020. 9. 1. 18:50
linux든 window든 pyinstaller를 활용하여 exe를 만든 후 대게 tensorflow 에러가 발생하는 경우가 많습니다.
그 중에 no module named과 같은 에러를 해결하는 방법입니다.
위와 같은 에러가 생기는 경우는 pyinstaller를 최신버전으로 사용하여도, tensorflow의 발전은 더 빠르기에 숨겨져있는 module을 같이 exe파일로 설치 못하는 경우가 많습니다.
그래서 py파일로 실행할 때는 문제 없지만, exe로 실행시킬 때는 한 두개의 모듈을 빼먹고 exe파일로 만들기 때문에 위와 같은 에러가 생깁니다.
그래서, 보통 ModuleNotFoundError : No modul named 'tensorflow.~~.~~.~~'의 에러가 많이 발생하는데, 이 때 'tensorflow.~~.~~.~~'를 복사하여 pyinstaller를 통해 만들어지는 .spec 파일을 열어 줍니다.
파일안의 내용에서 hiddenimports = [], 라는 부분이 있습니다.
여기 안에 복사한 부분을 붙혀넣어서 hiddenimports = ['tensorflow.~~.~~.~~'] 이런식으로 만들고,
만약 이후로도 비슷한 에러가 뜬다면 계속 추가해서 hiddenimports = ['tensorflow.~~.~~.~~', 'tensorflow.~~.~~.~~'] 이런식으로 만들면 됩니다.
그이후로 py파일이 있는 cmd 경로에서 pyinstaller test.spec 이런 식으로 실행시키면, 문제가 해결됩니다.
* 예를 들어, 보통 tensorflow.tt.xx 모듈이 없다는 에러가 발생 후에 또, 실행 시킬때는 tensorflow.tt.xx.layer 이런식으로 비슷한 에러가 연쇄적으로 발생하면 tensorflow.tt.xx이 모듈이 중요한게 아니라 tensorflow.tt.xx.layer모듈이 중요한 것이니 이전 것은 지우고 뒤에 생긴 모듈만 추가해도 됩니다.
'IT 지식 창고' 카테고리의 다른 글
(Tensorflow) valueerror:unknown layer : functional 에러 이유 (0) 2020.09.04 (albumentation) albumentation이 적용되지 않을 때 (0) 2020.09.03 (keras) keras requires tensorflow 2.2 or higher. install tensorflow via pip install tensorflow Error 해결방법 (0) 2020.09.01 (pyinstaller) exe파일 만들 때 일반 폴더도 같이 만드는 법 (0) 2020.09.01 (Centos) vmware에서 CentOS8로 통신할 때 (0) 2020.09.01 댓글