cudf icon indicating copy to clipboard operation
cudf copied to clipboard

[BUG] pylibcudf strings circular import error

Open er-eis opened this issue 9 months ago • 1 comments

Looks like this CI/CD run was mostly skipped -- https://github.com/rapidsai/cudf/actions/runs/8977241037/job/24655609146

Getting circular import issues. pytests were running in pycharm just fine before I pulled this change in. Also tried using CLI pytest and getting same circular import error

(cudf_dev)  ✘ administrator@administrator-laptop  ~/programming/cudf  ↱ branch-24.06  git pull upstream branch-24.06
From github.com:rapidsai/cudf
 * branch                  branch-24.06 -> FETCH_HEAD
Already up to date.
(cudf_dev)  administrator@administrator-laptop  ~/programming/cudf  ↱ branch-24.06  pytest -v ./python/cudf/cudf/tests
/home/administrator/miniconda3/envs/cudf_dev/lib/python3.11/site-packages/_pytest/config/__init__.py:331: PluggyTeardownRaisedWarning: A plugin raised an exception during an old-style hookwrapper teardown.
Plugin: helpconfig, Hook: pytest_cmdline_parse
ConftestImportFailure: ImportError: cannot import name 'find' from partially initialized module 'cudf._lib.pylibcudf.strings' (most likely due to a circular import) (/home/administrator/programming/cudf/python/cudf/cudf/_lib/pylibcudf/strings/__init__.py) (from /home/administrator/programming/cudf/python/cudf/cudf/tests/conftest.py)
For more information see https://pluggy.readthedocs.io/en/stable/api_reference.html#pluggy.PluggyTeardownRaisedWarning
  config = pluginmanager.hook.pytest_cmdline_parse(
ImportError while loading conftest '/home/administrator/programming/cudf/python/cudf/cudf/tests/conftest.py'.
python/cudf/cudf/tests/conftest.py:13: in <module>
    import cudf
python/cudf/cudf/__init__.py:9: in <module>
    _setup_numba()
python/cudf/cudf/utils/_numba.py:124: in _setup_numba
    _get_cc_60_ptx_file()
python/cudf/cudf/utils/_numba.py:16: in _get_cc_60_ptx_file
    from cudf._lib import strings_udf
python/cudf/cudf/_lib/__init__.py:4: in <module>
    from . import (
avro.pyx:1: in init cudf._lib.avro
    ???
column.pyx:1: in init cudf._lib.column
    ???
python/cudf/cudf/_lib/pylibcudf/__init__.py:3: in <module>
    from . import (
python/cudf/cudf/_lib/pylibcudf/strings/__init__.py:3: in <module>
    from . import case, find
E   ImportError: cannot import name 'find' from partially initialized module 'cudf._lib.pylibcudf.strings' (most likely due to a circular import) (/home/administrator/programming/cudf/python/cudf/cudf/_lib/pylibcudf/strings/__init__.py)

er-eis avatar May 07 '24 18:05 er-eis

this was resolved by re-running the build script:

./build.sh --pydevelop libcudf libcudf_kafka cudf dask_cudf cudf_kafka custreamz

er-eis avatar May 07 '24 19:05 er-eis

I got a similar issue with python=3.12. Python downgrade helped.

VitaliyaIoffe avatar Jun 09 '24 20:06 VitaliyaIoffe

This issue usually boils down to importing the source without a build so that extension modules are missing. There are multiple ways that situation could be arrived at, including using a Python version that is currently unsupported by our published builds.

vyasr avatar Jun 10 '24 23:06 vyasr

I got a similar issue with python=3.12. Python downgrade helped.

@VitaliyaIoffe, I think you were affected by https://github.com/rapidsai/cudf/issues/15989, we will hopefully have a fix for that soon.

wence- avatar Jun 13 '24 15:06 wence-