asyncio と aiohttp を使用して非同期 HTTP リクエストを実行するライブラリ「asyhttp」のインストール

スポンサーリンク

asyncio と aiohttp を使用して非同期 HTTP リクエストを実行するライブラリ「asyhttp」のインストールについて解説しています。

「asyhttp(https://github.com/ax/asyhttp)」は、asyncio と aiohttp を使用し非同期 HTTP リクエストを実行する単純なモジュールを提供しています。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■asyhttpをインストールする

asyhttpをインストールを行いますが、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。

pip install asyhttp

起動後、上記のコマンドを入力し、Enterキーを押します。

なお、今回は、pythonランチャーを使用しており、Python Version 3.8.5にインストールを行うために、バージョンの切り替えを行います。

py -3.8 -m pip install asyhttp

切り替えるために、上記のコマンドを入力し、Enterキーを押します。

Defaulting to user installation because normal site-packages is not writeable
Collecting asyhttp
  Using cached asyhttp-0.2.tar.gz (3.6 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "", line 2, in 
        File "", line 34, in 
        File "C:\Users\user_\AppData\Local\Temp\pip-install-qzqh5nhl\asyhttp_db69d20dfd544f85a7ef09e5081c30f0\setup.py", line 4, in 
          long_description = fh.read()
      UnicodeDecodeError: 'cp932' codec can't decode byte 0x93 in position 843: illegal multibyte sequence
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: C:\Program Files\Python38\python.exe -m pip install --upgrade pip

Enterキーを押すと、インストールが開始されましたが、「error: subprocess-exited-with-error」というエラーが出力されてしまいました。エラーの原因を調べて対処します。

エラーを出力後、対処として、ローカル上にパッケージを一度ダウンロードすることにしますので、https://github.com/ax/asyhttpにアクセスし、緑色の「コード」ボタンから「ダウンロードZIP」をクリックします。クリックすると、Webブラウザで指定されたファイルの保存場所にZIP形式のファイルがダウンロードされます。

ダウンロード後、「asyhttp-master.zip」を解凍、展開します。解凍・展開後、「asyhttp-master」の「setup.py」を編集します。

■コード(変更前)

from distutils.core import setup

with open("README.rst", "r") as fh:
    long_description = fh.read()

setup(
  name = 'asyhttp',
  packages = ['asyhttp'],
  version = '0.2',
  description = 'Simple module to perform asynchronous HTTP requests using asyncio and aiohttp',
  long_description=long_description,
  author = 'ax',
  author_email = 'ax.tryin@gmail.com',
  url = 'https://github.com/ax/asyhttp',
  download_url = 'https://github.com/ax/asyhttp/archive/0.1.tar.gz',
  keywords = ['aiohttp','asyncio','http','async','asynchronous','http-requests']
)

■コード(変更後)

from distutils.core import setup

with open("README.rst", "r", encoding='UTF-8') as fh:
    long_description = fh.read()

setup(
  name = 'asyhttp',
  packages = ['asyhttp'],
  version = '0.2',
  description = 'Simple module to perform asynchronous HTTP requests using asyncio and aiohttp',
  long_description=long_description,
  author = 'ax',
  author_email = 'ax.tryin@gmail.com',
  url = 'https://github.com/ax/asyhttp',
  download_url = 'https://github.com/ax/asyhttp/archive/0.1.tar.gz',
  keywords = ['aiohttp','asyncio','http','async','asynchronous','http-requests']
)

変更内容は上記になります。変更後、保存し、再度コマンドプロンプトを起動します。

py -3.8 -m pip install -e C:\Users\(ユーザー名)\Downloads\asyhttp-master

起動後、上記のコマンドを入力し、Enterキーを押します。これでローカル上に置かれているパッケージをインストールすることができます。

C:\Users\user_>py -3.8 -m pip install -e C:\Users\user_\Downloads\asyhttp-master
Defaulting to user installation because normal site-packages is not writeable
Obtaining file:///C:/Users/user_/Downloads/asyhttp-master
  Preparing metadata (setup.py) ... done
Installing collected packages: asyhttp
  Running setup.py develop for asyhttp
Successfully installed asyhttp-0.2

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: C:\Program Files\Python38\python.exe -m pip install --upgrade pip

Enterキーを押すと、インストールが開始され、上記のように「Successfully installed」と表示されます。これが表示されれば、asyhttpが正常にインストールされたことになります。

なお、今回はasyhttpのバージョン0.2をインストールしました。

コメント

タイトルとURLをコピーしました