I'm getting the follow dependency error when attempting to import tensorflow on a jupyter notebook:
AttributeError: module 'pyparsing' has no attribute 'downcaseTokens'
The full error message is:
AttributeError Traceback (most recent call last)
<ipython-input-19-456b3b208783> in <module>
----> 1 import tensorflow as tf
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/__init__.py in <module>
39 import sys as _sys
40
---> 41 from tensorflow.python.tools import module_util as _module_util
42 from tensorflow.python.util.lazy_loader import LazyLoader as _LazyLoader
43
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/__init__.py in <module>
46 from tensorflow.python import data
47 from tensorflow.python import distribute
---> 48 from tensorflow.python import keras
49 from tensorflow.python.feature_column import feature_column_lib as feature_column
50 from tensorflow.python.layers import layers
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/__init__.py in <module>
25
26 # See b/110718070#comment18 for more details about this import.
---> 27 from tensorflow.python.keras import models
28
29 from tensorflow.python.keras.engine.input_layer import Input
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/models.py in <module>
22 from tensorflow.python.framework import ops
23 from tensorflow.python.keras import backend as K
---> 24 from tensorflow.python.keras import metrics as metrics_module
25 from tensorflow.python.keras import optimizer_v1
26 from tensorflow.python.keras.engine import functional
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/metrics.py in <module>
38 from tensorflow.python.framework import tensor_spec
39 from tensorflow.python.keras import backend as K
---> 40 from tensorflow.python.keras.engine import base_layer
41 from tensorflow.python.keras.engine import base_layer_utils
42 from tensorflow.python.keras.engine import keras_tensor
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py in <module>
58 from tensorflow.python.keras.engine import node as node_module
59 from tensorflow.python.keras.mixed_precision import autocast_variable
---> 60 from tensorflow.python.keras.mixed_precision import loss_scale_optimizer
61 from tensorflow.python.keras.mixed_precision import policy
62 from tensorflow.python.keras.saving.saved_model import layer_serialization
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/keras/mixed_precision/loss_scale_optimizer.py in <module>
18 from __future__ import print_function
19
---> 20 from tensorflow.python.distribute import collective_all_reduce_strategy
21 from tensorflow.python.distribute import distribution_strategy_context
22 from tensorflow.python.distribute import mirrored_strategy
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/distribute/collective_all_reduce_strategy.py in <module>
33 from tensorflow.python.distribute import distribute_utils
34 from tensorflow.python.distribute import input_lib
---> 35 from tensorflow.python.distribute import mirrored_strategy
36 from tensorflow.python.distribute import multi_worker_util
37 from tensorflow.python.distribute import numpy_dataset
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/distribute/mirrored_strategy.py in <module>
32 from tensorflow.python.distribute import reduce_util
33 from tensorflow.python.distribute import values
---> 34 from tensorflow.python.distribute.cluster_resolver import TFConfigClusterResolver
35 from tensorflow.python.eager import context
36 from tensorflow.python.eager import tape
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/distribute/cluster_resolver/__init__.py in <module>
29 from tensorflow.python.distribute.cluster_resolver.cluster_resolver import SimpleClusterResolver
30 from tensorflow.python.distribute.cluster_resolver.cluster_resolver import UnionClusterResolver
---> 31 from tensorflow.python.distribute.cluster_resolver.gce_cluster_resolver import GCEClusterResolver
32 from tensorflow.python.distribute.cluster_resolver.kubernetes_cluster_resolver import KubernetesClusterResolver
33 from tensorflow.python.distribute.cluster_resolver.slurm_cluster_resolver import SlurmClusterResolver
/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/distribute/cluster_resolver/gce_cluster_resolver.py in <module>
26 _GOOGLE_API_CLIENT_INSTALLED = True
27 try:
---> 28 from googleapiclient import discovery # pylint: disable=g-import-not-at-top
29 from oauth2client.client import GoogleCredentials # pylint: disable=g-import-not-at-top
30 except ImportError:
/opt/anaconda3/lib/python3.7/site-packages/googleapiclient/discovery.py in <module>
46
47 # Third-party imports
---> 48 import httplib2
49 import uritemplate
50 import google.api_core.client_options
/opt/anaconda3/lib/python3.7/site-packages/httplib2/__init__.py in <module>
50 # idea is to have soft-dependency on any compatible module called socks
51 from . import socks
---> 52 from . import auth
53 from .error import *
54 from .iri2uri import iri2uri
/opt/anaconda3/lib/python3.7/site-packages/httplib2/auth.py in <module>
18
19 quoted_string = pp.dblQuotedString.copy().setName("quoted-string").setParseAction(unquote)
---> 20 auth_param_name = token.copy().setName("auth-param-name").addParseAction(pp.downcaseTokens)
21 auth_param = auth_param_name + pp.Suppress("=") + (quoted_string | token)
22 params = pp.Dict(pp.delimitedList(pp.Group(auth_param)))
AttributeError: module 'pyparsing' has no attribute 'downcaseTokens'
The AttributeError appears when attempting to import httplib2, which is dependent on a deprecated function in pyparsing.
!pip install httplib2
!pip install --force-reinstall -v "pyparsing==2.4.2"
import pyparsing as pyparse
!pip show pyparsing
!pip show httplib2
import httplib2 as pp
I've tried importing an older version of pyparsing, but still drops the same error message.