dmlc / dgl

Python package built to ease deep learning on graph, on top of existing DL frameworks.
http://dgl.ai
Apache License 2.0
13.25k stars 2.99k forks source link

DGL installs for CUDA support even when CUDA is set to none for Installation Instructions #6985

Open wassimj opened 6 months ago

wassimj commented 6 months ago

🐛 Bug

I am following the official installation instructions for DGL with CUDA set to NONE as my laptop does not have CUDA. The resulting command is: pip install dgl -f https://data.dgl.ai/wheels/repo.html pip install dglgo -f https://data.dgl.ai/wheels-test/repo.html However, this command installs dgl with cuda (Successfully installed dgl-2.0.0+cu121) When I try to import DGL in python, I get the following error:

FileNotFoundError: Could not find module 'C:\Users\sarwj\AppData\Local\Programs\Python\Python310\lib\site-packages\dgl\dgl.dll' (or one of its dependencies). Try using the full path with constructor syntax.

To Reproduce

OS: Windows 11 Python: 3.10 Hardware: Intel CPU without nVidia Card and thus no CUDA availability

Steps to reproduce the behavior:

  1. pip uninstall all previous versions of dgl and torch
  2. Issue the following command: pip install dgl -f https://data.dgl.ai/wheels/repo.html
  3. Issue the following command: pip install dglgo -f https://data.dgl.ai/wheels-test/repo.html
  4. Start a python environment: python
  5. Issue the command import dgl
C:\Users\sarwj>python
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import dgl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\sarwj\AppData\Local\Programs\Python\Python310\lib\site-packages\dgl\__init__.py", line 14, in <module>
    from .backend import backend_name, load_backend  # usort: skip
  File "C:\Users\sarwj\AppData\Local\Programs\Python\Python310\lib\site-packages\dgl\backend\__init__.py", line 122, in <module>
    load_backend(get_preferred_backend())
  File "C:\Users\sarwj\AppData\Local\Programs\Python\Python310\lib\site-packages\dgl\backend\__init__.py", line 51, in load_backend
    from .._ffi.base import load_tensor_adapter  # imports DGL C library
  File "C:\Users\sarwj\AppData\Local\Programs\Python\Python310\lib\site-packages\dgl\_ffi\base.py", line 50, in <module>
    _LIB, _LIB_NAME, _DIR_NAME = _load_lib()
  File "C:\Users\sarwj\AppData\Local\Programs\Python\Python310\lib\site-packages\dgl\_ffi\base.py", line 39, in _load_lib
    lib = ctypes.CDLL(lib_path[0])
  File "C:\Users\sarwj\AppData\Local\Programs\Python\Python310\lib\ctypes\__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'C:\Users\sarwj\AppData\Local\Programs\Python\Python310\lib\site-packages\dgl\dgl.dll' (or one of its dependencies). Try using the full path with constructor syntax.

Expected behavior

  1. The correct NON-CUDA version of DGL is installed
  2. DGL is imported into python successfully with no errors and can be used.

Environment

Additional context

peizhou001 commented 6 months ago

Seems you install dgl CUDA version in a machine without CUDA, please install the CPU version.

wassimj commented 6 months ago

The issue is that the installation instructions are faulty and even when one selects NONE for CUDA, the command it gives installs a CUDA version. What is the pip install command to install a non-cuda version? Thank you.

mfbalin commented 5 months ago

The issue seems to be related to the following: Wheel with no CUDA: dgl-2.0.0-cp310-cp310-win_amd64.whl Wheel with CUDA: dgl-2.0.0+cu121-cp310-cp310-win_amd64.whl One can see that the CUDA wheel name is lexicographically smaller than the no CUDA one due to + < -. However, I am not sure if that is exactly how it works. I am currently looking into it.

mfbalin commented 5 months ago

The main problem seems to be the fact that the cuda wheels were uploaded to https://data.dgl.ai/wheels/repo.html, they probably should have been uploaded only to https://data.dgl.ai/wheels/cu121/repo.html instead.

github-actions[bot] commented 4 months ago

This issue has been automatically marked as stale due to lack of activity. It will be closed if no further activity occurs. Thank you

shreyasvinaya commented 4 months ago

Any update on this being fixed?

mfbalin commented 4 months ago

@Rhett-Ying @peizhou001 any insights here?

github-actions[bot] commented 3 months ago

This issue has been automatically marked as stale due to lack of activity. It will be closed if no further activity occurs. Thank you

wassimj commented 3 months ago

Will this issue be fixed please?

Rhett-Ying commented 3 months ago

Next DGL release will be ready in May, let's see if this issue is fixed.

RaaghavM commented 1 month ago

Is there a workaround for this?

wassimj commented 4 days ago

Any update on this? Or at least can this be acknowldged as a bug? Thanks

Rhett-Ying commented 3 days ago

Hi,

Since 2024.06.27, we have stopped providing packages for Windows and MacOS. The latest version of available package is 2.2.1. For newer versions, please install from source.