graphene icon indicating copy to clipboard operation
graphene copied to clipboard

AttributeError: partially initialized module 'graphene' has no attribute 'ObjectType' (most likely due to a circular import)

Open nojvek opened this issue 2 years ago • 1 comments

Note: for support questions, please use stackoverflow. This repository's issues are reserved for feature requests and bug reports.

  • What is the current behavior?
  File "/Users/noj/recurrency/legacy-api/v4/graphql.py", line 1, in <module>
    import graphene
  File "/opt/homebrew/lib/python3.9/site-packages/graphene/__init__.py", line 3, in <module>
    from .types import (
  File "/opt/homebrew/lib/python3.9/site-packages/graphene/types/__init__.py", line 2, in <module>
    from graphql import ResolveInfo
  File "/Users/noj/recurrency/legacy-api/v4/graphql.py", line 3, in <module>
    class Query(graphene.ObjectType):
AttributeError: partially initialized module 'graphene' has no attribute 'ObjectType' (most likely due to a circular import)
  • If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via a github repo, https://repl.it or similar.
import graphene

class Query(graphene.ObjectType):
    hello = graphene.String(description='A typical hello world')

    def resolve_hello(self, info):
        return 'World'

schema = graphene.Schema(query=Query)

if __name__ == "__main__":
    query = '''
        query SayHello {
          hello
        }
    '''
    result = schema.execute(query)

    print (result)

  • What is the expected behavior?

No errors.

  • Please tell us about your environment:

    • Version: Python 3.9.7
    • Platform: Mac
  • Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow)

nojvek avatar Sep 24 '21 07:09 nojvek

@nojvek This happens because you've got a file named "graphql.py" and so Python uses that instead of the graphql-core module that Graphene depends on. Renaming your file to something else should fix it.

jkimbo avatar Sep 24 '21 08:09 jkimbo