[Bug] ModuleNotFoundError: No module named 'torchdata.datapipes' on Linux aarch64 (DGL incompatibility)
Okay, here is the English version of your inquiry, complete and ready for posting on a GitHub Issues page.
Title:
[Bug] ModuleNotFoundError: No module named 'torchdata.datapipes' on Linux aarch64 (DGL incompatibility)
Body:
Dear RFdiffusion / DGL Team,
I am writing to report a persistent issue I'm encountering while trying to set up RFdiffusion on a Linux aarch64 (ARM64) system. I would greatly appreciate any guidance or known solutions.
Problem Description:
When attempting to import RFdiffusion's core modules, I consistently get a ModuleNotFoundError: No module named 'torchdata.datapipes'. This error originates within the dgl library, specifically when it tries to import the datapipes submodule from torchdata.
Environment:
- Operating System: Linux aarch64 (Ubuntu 24.04.1 LTS)
- Python Version: 3.9 (Conda environment)
- PyTorch Version: 2.0.0 (CPU-only build from
conda-forge) - TorchVision Version: 0.15.2
- TorchAudio Version: 2.0.0 (installed via pip)
- CUDA Toolkit: 11.8 (Installed via Conda, but PyTorch build is CPU)
- DGL Version:
conda installattempts for versions 0.8.1, 0.9.1, 1.0.0, 1.1.2 (+cu118) resulted inPackagesNotFoundError(Conda could not find/resolve them).pip install dgl(latest, 2.1.0) successfully installs DGL.
- TorchData Version: 0.11.0 (installed via pip)
- RFdiffusion Source: https://github.com/RosettaCommons/RFdiffusion
- ColabDesign Source: https://github.com/sokrypton/ColabDesign
Steps to Reproduce:
- Switched to a Python 3.9 environment.
- Created a base environment using
conda create -n SE3nv python=3.9. - Installed PyTorch ecosystem (
pytorch==2.0.0,torchvision==0.15.2,cudatoolkit=11.8) fromconda-forge. (This step succeeded.) - Installed DGL latest version (2.1.0) via
pip install dgl. (This step succeeded.) - Installed TorchAudio 2.0.0 via
pip install torchaudio==2.0.0. (This step succeeded.) - Installed
RFdiffusion/env/SE3TransformerandColabDesign(pip install -e .). - Installed remaining pip dependencies (omegaconf, icecream, pyrsistent, matplotlib, ipywidgets, py3Dmol, jupyterlab, etc.).
- Created a base environment using
- Attempted
python -c "from inference.utils import parse_pdb".
Expected Behavior: RFdiffusion modules should import successfully.
Actual Behavior (Traceback):
(Please copy and paste the full traceback from your most recent ModuleNotFoundError: No module named 'torchdata.datapipes' here. For example:)
Traceback (most recent call last):
File "
Additional Context (What I've Tried):
- Attempted installation in Python 3.10 environment, but failed due to DGL, TorchData, and TorchAudio version conflicts.
- For Python 3.9,
conda installattempts for DGL versions (0.8.1, 0.9.1, 1.0.0, 1.1.2 withcu118label) fromdglteamanddefaultschannels consistently failed withPackagesNotFoundError. This indicates Conda cannot find or resolve theseaarch64builds. - Manually checked
~/miniconda3/envs/SE3nv/lib/python3.9/site-packages/torchdata/vials -land confirmed that thedatapipesdirectory is physically missing. This strongly suggests a structural mismatch between DGL 2.1.0's requirements and the available TorchData 0.11.0 build foraarch64.
Question:
Are there any known working dgl / torchdata version combinations or specific installation instructions for linux-aarch64 that successfully resolve this torchdata.datapipes issue? Are there any official aarch64 Docker images or specific Dockerfile modifications known to work?
Thank you for your time and assistance.
Hello, datapipes is no longer part of torchdata as of around June 2024. Please follow the installation steps here: RFdiffusion Installation Guide, the SE3nv.yml should set up the correct environment for you.
There is also a docker image that you can use: RFdiffusion Docker Images - note that if you are using this on an HPC system this page also has instructions for running the image with Apptainer/Singularity.
There is currently not a Rosetta Commons Docker image that supports this architecture nor are we aware of installation instructions that will work with linux-aarch64 systems. We are looking into how to update the dependencies to avoid this issue, but currently do not have a timeline for this change.