wandb: [CLI] cannot import name `introspection_query` from `graphql`

Description I’m attempting to integrate weights and biases, pytorch lightning, and kedro, which requires graphql>3.1.0 to function. The weights and biases package appears to have a vendor copy of graphql which is pretty old, but when graphql is imported in the vendor package it doesn’t use the weights&biases included version and instead uses the newer site package.

How to reproduce

  1. Install graphql > 3.0 (or more specifically install kedro which installs this)
  2. Attempt to initialize weights and biases
  3. Observe the error below
Traceback (most recent call last):
  File "/home/dlangerm/dev/kedro-test/env/bin/kedro", line 10, in <module>
    sys.exit(main())
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/kedro/framework/cli/cli.py", line 266, in main
    cli_collection()
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/kedro/framework/cli/cli.py", line 216, in main
    **extra,
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/kedro/framework/cli/project.py", line 417, in run
    pipeline_name=pipeline,
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/kedro/framework/session/session.py", line 368, in run
    pipeline = pipelines[name]
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/kedro/framework/project/__init__.py", line 111, in inner
    self._load_data()
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/kedro/framework/project/__init__.py", line 145, in _load_data
    self._pipelines_module
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/kedro/framework/project/__init__.py", line 131, in _get_pipelines_registry_callable
    module_obj = importlib.import_module(pipelines_module)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/dlangerm/dev/kedro-test/lightning_test_project/src/kedro_lightning/pipeline_registry.py", line 33, in <module>
    from kedro_lightning.pipelines import (
  File "/home/dlangerm/dev/kedro-test/lightning_test_project/src/kedro_lightning/pipelines/train/__init__.py", line 1, in <module>
    from .pipeline import create_pipeline  # NOQA
  File "/home/dlangerm/dev/kedro-test/lightning_test_project/src/kedro_lightning/pipelines/train/pipeline.py", line 2, in <module>
    from .nodes import (
  File "/home/dlangerm/dev/kedro-test/lightning_test_project/src/kedro_lightning/pipelines/train/nodes.py", line 5, in <module>
    from flash import Trainer
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/flash/__init__.py", line 18, in <module>
    from flash.core.utilities.imports import _TORCH_AVAILABLE
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/flash/core/utilities/imports.py", line 125, in <module>
    _PL_GREATER_EQUAL_1_4_3 = _compare_version("pytorch_lightning", operator.ge, "1.4.3")
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/flash/core/utilities/imports.py", line 58, in _compare_version
    pkg = importlib.import_module(package)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/__init__.py", line 21, in <module>
    from pytorch_lightning.callbacks import Callback  # noqa: E402
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/callbacks/__init__.py", line 24, in <module>
    from pytorch_lightning.callbacks.pruning import ModelPruning
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/callbacks/pruning.py", line 31, in <module>
    from pytorch_lightning.core.lightning import LightningModule
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/core/__init__.py", line 16, in <module>
    from pytorch_lightning.core.lightning import LightningModule
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/core/lightning.py", line 41, in <module>
    from pytorch_lightning.trainer.connectors.logger_connector.fx_validator import FxValidator
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/trainer/__init__.py", line 18, in <module>
    from pytorch_lightning.trainer.trainer import Trainer
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 31, in <module>
    from pytorch_lightning.loggers import LightningLoggerBase
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/loggers/__init__.py", line 26, in <module>
    from pytorch_lightning.loggers.wandb import _WANDB_AVAILABLE, WandbLogger  # noqa: F401
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/loggers/wandb.py", line 37, in <module>
    _WANDB_GREATER_EQUAL_0_10_22 = _compare_version("wandb", operator.ge, "0.10.22")
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/pytorch_lightning/utilities/imports.py", line 54, in _compare_version
    pkg = importlib.import_module(package)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/wandb/__init__.py", line 34, in <module>
    from wandb import sdk as wandb_sdk
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/wandb/sdk/__init__.py", line 9, in <module>
    from .wandb_artifacts import Artifact  # noqa: F401
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/wandb/sdk/wandb_artifacts.py", line 29, in <module>
    from wandb.apis import InternalApi, PublicApi
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/wandb/apis/__init__.py", line 32, in <module>
    from .internal import Api as InternalApi  # noqa
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/wandb/apis/internal.py", line 1, in <module>
    from wandb.sdk.internal.internal_api import Api as InternalApi
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/wandb/sdk/internal/internal_api.py", line 2, in <module>
    from gql import Client, gql  # type: ignore
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/wandb/vendor/gql-0.2.0/gql/__init__.py", line 2, in <module>
    from .client import Client
  File "/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/wandb/vendor/gql-0.2.0/gql/client.py", line 3, in <module>
    from graphql import parse, introspection_query, build_ast_schema, build_client_schema
ImportError: cannot import name 'introspection_query' from 'graphql' (/home/dlangerm/dev/kedro-test/env/lib/python3.7/site-packages/graphql/__init__.py)

Environment

  • OS: Ubuntu 20.04
  • Environment: WSL
  • Python Version: 3.7

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 1
  • Comments: 25 (7 by maintainers)

Most upvoted comments

This issue is stale because it has been open 60 days with no activity.

I got help from kedro devs on the project discord and you can bypass the problem by downgrading the kedro-viz version to 3.16.0 (before graphql usage).

So, in your kedro project env, you can install wandb as usual and then use pip install kedro-viz==3.16.0 and both packages will work in the same env! 🤗

@dlangerm understood, I’m working on a fix. Hope to have a branch you can try by EOD.

@dlangerm taking a look at this.