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
- Install graphql > 3.0 (or more specifically install kedro which installs this)
- Attempt to initialize weights and biases
- 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)
This issue is stale because it has been open 60 days with no activity.
I got help from
kedrodevs on the project discord and you can bypass the problem by downgrading thekedro-vizversion to3.16.0(before graphql usage).So, in your kedro project env, you can install
wandbas usual and then usepip install kedro-viz==3.16.0and 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.