[Python / Error] aiohttpパッケージインストールのERROR: Failed to build installable wheels for some pyproject.toml based projects (aiohttp)エラー

[Python / Error] aiohttpパッケージインストールのERROR: Failed to build installable wheels for some pyproject.toml based projects (aiohttp)エラー

概要

  • VS CodeからPythonのプログラムを作成する時、
    requirement.txtから一括にパッケージをインストールすることができます。
  • そこでaiohttpをインストールしようとしましたがエラーになってインストールができません。
  • 他のパッケージ requestはできたのでpythonの問題ではないと思いました。
requirement.txt
aiohttp==3.8.2
  • 次の requirements.txtファイルからパッケージを一括インストールするコマンドを実行しました。
コマンドプロンプト上
pip install -r <requirements.txtファイルのパス>
  • すると次のようにエラーが発生しました。
# エラー内容
aiohttp/_websocket.c(3744): error C2039: 'ob_digit': '_longobject' のメンバーではありません

C:\Users\admin\AppData\Local\Programs\Python\Python312\include\cpython/longintrepr.h(87): note: '_longobject' の宣言を確認してください
      
error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.36.32532\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for aiohttp
Failed to build aiohttp
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (aiohttp)

開発環境

  • Python 3.12.5
  • aiohttp 3.8.2

参考

対応

aiohttpのバージョンを調整

  • 調べたところ、aiohttp3.8はPython 3.12には対応できないことがわかりました。
  • それでaiohttpのバージョンを最新の3.10.3に変更しました。(2024/08/15作成)
requirement.txt
# aiohttpのバージョンを最新に更新
aiohttp==3.10.3
  • 次に requirements.txtファイルからパッケージを一括インストールするコマンドを
    もう一度実行すると成功しました。
コマンドプロンプト上
pip install -r <requirements.txtファイルのパス>
# 正常実行
Downloading aiohttp-3.10.3-cp312-cp312-win_amd64.whl (377 kB)
Downloading aiohappyeyeballs-2.3.5-py3-none-any.whl (12 kB)
Installing collected packages: aiohappyeyeballs, aiohttp
Successfully installed aiohappyeyeballs-2.3.5 aiohttp-3.10.3

aiohttpのバージョンを決める

  • 今後pythonもaiohttpもバージョンアップしていくと思います。
  • pythonは開発環境に合わせて決めるとして、
    aiohttpはそのpythonのバージョンに合わせて決める必要があります。
  • ですが基本 aiohttpは最新バージョン(stable)で問題ないと思います。

aiohttpの最新バージョン確認

  • 次のURLからaiohttpのサイトに接続します。
    Welcome to AIOHTTP
  • すると 最新バージョン(stable)が画面の次の場所に表示されています。