tensorflow / tensorflow/probability

ImportError dependent on import order

Open
#2,012 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
4.4k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

Hi,

Working on an M3 macbook pro in macOS 15.6.

Using miniforge3.

Creating a conda env from scratch.

Running

conda install python pip ipython
pip install tensorflow tensorflow_probablity tensorflow-keras

to install python 3.13 and

tensorflow==2.20.0
tensorflow-probability==0.24.0
tensorflow_keras==0.1

then in a python terminal

In [1]: import tensorflow_probability
In [2]: import tensorflow

succeeds, and I can use tf and tf keras and import and use my own modules which use them . But

In [1]: import tensorflow
In [2]: import tensorflow_probability

returns the (familiar) error

File ~/miniforge3/envs/tensorflow/lib/python3.13/site-packages/tensorflow_probability/python/__init__.py:79, in _validate_tf_environment(package)
     77 if required_tensorflow_version[0] == '2':
     78   try:
---> 79     import tf_keras  # pylint: disable=unused-import
     80   except (ImportError, ModuleNotFoundError):
     81     # Print more informative error message, then reraise.
     82     print('\n\nFailed to import TF-Keras. Please note that TF-Keras is not '
     83           'installed by default when you install TensorFlow Probability. '
     84           'This is so that JAX-only users do not have to install TensorFlow '
   (...)     87           'This can be be done through installing the '
     88           'tensorflow-probability[tf] extra.\n\n')

ModuleNotFoundError: No module named 'tf_keras'

When importing tf and tfp at the top of my own modules, this error also appears when I import mymodule no matter what order the import of tf and tfp happens in the module file.

I am note even sure how to debug this! I guess something to do with namespaces getting messed up, but I am very much a user not a dev...

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the conda and pip installation, then run the two import orders shown in the report. Start in tensorflow_probability/python/init.py at _validate_tf_environment and inspect why importing tensorflow first leaves tf_keras unavailable; done means the documented installation imports successfully in either order.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, tensorflow
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.