概要
- 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
参考
- ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects
- Welcome to AIOHTTP
対応
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)が画面の次の場所に表示されています。