Skip to content
This repository was archived by the owner on Oct 2, 2025. It is now read-only.
This repository was archived by the owner on Oct 2, 2025. It is now read-only.

RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd #15

Description

@DanielTakeshi

I followed the three installation steps for my Ubuntu 18.04 machine to create a conda environment named ravens. The installation seems to have proceeded correctly. However, running the example shows this:

(ravens) seita@starship:~/ravens (master) $ python ravens/demos.py --assets_root=./ravens/environments/assets/ --disp=True --task=block-insertion --mode=train --n=10
2021-07-11 20:47:57.446709: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
pybullet build time: May 11 2021 10:00:39
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
Traceback (most recent call last):
  File "ravens/demos.py", line 25, in <module>
    from ravens import tasks
  File "/home/seita/ravens/ravens/__init__.py", line 18, in <module>
    from ravens import agents
  File "/home/seita/ravens/ravens/agents/__init__.py", line 18, in <module>
    from ravens.agents.conv_mlp import PickPlaceConvMlpAgent
  File "/home/seita/ravens/ravens/agents/conv_mlp.py", line 22, in <module>
    from ravens.models import mdn_utils
  File "/home/seita/ravens/ravens/models/__init__.py", line 18, in <module>
    from ravens.models.attention import Attention
  File "/home/seita/ravens/ravens/models/attention.py", line 21, in <module>
    from ravens.utils import utils
  File "/home/seita/ravens/ravens/utils/utils.py", line 28, in <module>
    import pybullet as p
ImportError: numpy.core.multiarray failed to import

This error is reported elsewhere, for example:

Most fixes suggest upgrading the numpy version. Here is the pastebin of the result of conda list showing that I'm using numpy 1.18.5. However, upgrading numpy does not succeed because TensorFlow 2.3.0 has a strict numpy dependency:

(ravens) seita@starship:~/ravens (master) $ pip install numpy --upgrade
Requirement already satisfied: numpy in /home/seita/miniconda3/envs/ravens/lib/python3.7/site-packages (1.18.5)
Collecting numpy
  Downloading numpy-1.21.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
     |████████████████████████████████| 15.7 MB 5.8 MB/s 
Installing collected packages: numpy
  Attempting uninstall: numpy
    Found existing installation: numpy 1.18.5
    Uninstalling numpy-1.18.5:
      Successfully uninstalled numpy-1.18.5
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.3.0 requires numpy<1.19.0,>=1.16.0, but you have numpy 1.21.0 which is incompatible.
Successfully installed numpy-1.21.0

The strange part is, I can actually run the data collection and training scripts, after upgrading numpy. However, because TensorFlow 2.3.0 is supposed to be incompatible (e.g., see here) it's not clear to me that this is an ideal situation. There may be some silent errors or unexpected code usage with the more recent numpy versions.

Is anyone able to reproduce this from a clean installation?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions