본문 바로가기

환경구성

Pyinstaller에서 Flask 앱 배포시, socketIO ValueError: Invalid async_mode specified가 발생하는 경우

반응형

PyInstaller로 챗봇서버를 배포하던 중, ValueError: Invalid async_mode specified 가 발생했습니다.

병렬처리가 필요해 eventlet async 모드를 사용했었는데, 거기서 문제가 발생하더군요.

배포때문에 기능을 제거할 순 없으니 방법을 찾아봤습니다.

두 군데를 수정해주었는데요,

 

소스에 명시적으로 eventlet을 import 했습니다.

import eventlet
...

 

그리고 아래와 같이 .spec 파일 hiddenimports에 'eventlet'을 명시해주면 됩니다.

    hiddenimports=[
            'eventlet',
            'eventlet.hubs.epolls',
            'eventlet.hubs.kqueue',
            'eventlet.hubs.selects',
            'engineio.async_drivers.eventlet',
            'dns',
            'dns.dnssec',
            'dns.e164',
            'dns.namedict',
            'dns.tsigkeyring',
            'dns.update',
            'dns.versioned',
            'dns.zone'
            ...
    ],

 

한참해메었는데, 찾으면 다 방법이 나오더군요.

오늘도 행복한 하루 되세요:)

반응형