9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AttributeError: module 'typesystem' has no attribute 'SchemaDefinitions'

Posted at

結論

requirements.txtにtypesystem==0.2.5を追加すると解決します。

起きたこと

二日前にビルド成功してたのに、Cloud RunでResponderのAPIのビルドが上手くいかない。コードの変更によって上手くいってないのかと思ったので、コミット巻き戻して確認したりしたが、どうやら

import responder

でこける。

エラー全文


AttributeError: module 'typesystem' has no attribute 'SchemaDefinitions'
at <module> (/usr/local/lib/python3.9/site-packages/apistar/schemas/jsonschema.py:3)
at <module> (/usr/local/lib/python3.9/site-packages/apistar/schemas/openapi.py:6)
at <module> (/usr/local/lib/python3.9/site-packages/apistar/schemas/__init__.py:1)
at <module> (/usr/local/lib/python3.9/site-packages/apistar/core.py:7)
at <module> (/usr/local/lib/python3.9/site-packages/apistar/__init__.py:11)
at <module> (/usr/local/lib/python3.9/site-packages/responder/ext/schema/__init__.py:4)
at <module> (/usr/local/lib/python3.9/site-packages/responder/api.py:25)
at <module> (/usr/local/lib/python3.9/site-packages/responder/core.py:1)
at <module> (/usr/local/lib/python3.9/site-packages/responder/__init__.py:1)
at <module> (/app/main.py:7)

したこと

  • 二日前にはビルド成功していたので、二日前のコードに戻してビルド→動かない
  • pip show responder で依存関係確認したが大丈夫そう。これはどのバージョンに依存してるとかまで見れる。

解決策

ちゃんとエラーを読んだ。前まで上手くいってたので、前のコードに戻しても上手くいかないのは自分のせいだと思ったのがミスだった。全人類エラーを読め
responderapistar に依存。
pip show apistar で依存関係を確認すると、

Name: apistar
Version: 0.7.2
Summary: API documentation, validation, mocking, and clients.
Home-page: https://docs.apistar.com/
Author: Tom Christie
Author-email: tom@tomchristie.com
License: BSD
Location: c:\users\yuuta\anaconda3\lib\site-packages
Requires: click, typesystem, jinja2, pyyaml, requests
Required-by: responder

typesystemに依存してる。
AttributeError: module 'typesystem' has no attribute 'SchemaDefinitions'
といわれているので、実際のコードをGithubで見に行ってみた。
image.png
(この写真は記事投稿時の写真。見に行った当時は2days ago に変更が入っていた)
この時点でかなり嫌な予感
実際のcommitを眺める。
https://github.com/encode/typesystem/commit/851b60f3e08ae37b6548cc42e0e5407934f0a0d9
31ファイル変更は多いので、SchemaDefinitionsで検索
image.png
image.png
「あっ...名前、変えられたんですね」

このcommitがVersion 0.3.0なので、requirements.txtの中身にtypesystem==0.2.5を追加し、解決。
apistarが対応するまでは、これで対応できるはず。ちゃんとpip freezeでバージョンを管理すればローカルで動いてたらCloud Run上でも動いたはずなのに、余計な時間を過ごしました。

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?