Python のアプリを Nuitka で実行ファイルにして動かすと、Websockets に関するエラーが出ました。

尚、python で実行したときには正常に動作しています。
環境
- Python 3.11
- Nuitka 1.9.2
- Websockets 11.0.3
エラーの内容
具体的には以下のようなエラーが出ました。
Traceback (most recent call last):
File "/foo/main.py", line 36, in subprocess
File "/foo/asyncio/runners.py", line 190, in run
File "/foo/asyncio/runners.py", line 118, in run
File "/foo/asyncio/base_events.py", line 653, in run_until_complete
File "/foo/websocket_manager.py", line 47, in run
File "/foo/websocket_client.py", line 38, in run
File "/foo/websockets/imports.py", line 77, in __getattr__
File "/foo/websockets/imports.py", line 27, in import_name
ModuleNotFoundError: No module named 'websockets.legacy'
とりあえずの対処法
以下に同じエラーの報告がありました。
上記を参考に以下のように変更すればとりあえず解決しました。
変更前
import websockets
async for websocket in websockets.connect(uri):
変更後
import websockets.client
async for websocket in websockets.client.connect(uri):
本来の解決方法
上記のコードですが、どうやらこれは古い記述方法みたいです。
最近の websockets (11.x 以降) では、接続の作成と処理は以下のように行うことを推奨しているようです。
import websockets
while True:
try:
async with websockets.connect(uri) as websocket:
# メッセージ処理
except Exception:
# ここに再接続ロジックなど
await asyncio.sleep(retry_delay)
ただし、これで今回のエラーが解決するかどうかは試していません。