lmcinnes / lmcinnes/pynndescent
Import fails
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 970
- Forks
- 107
- PR merge metrics
- No merged PRs in 30d
Description
Importing pynndescent fails. In versions 0.5.2 onwards the error is:
LLVM ERROR: Symbol not found: __svml_sqrtf8
In version 0.5.1 the error is...
Traceback (most recent call last):
File "", line 1, in
File "C:\Anaconda3\envs\squidpy\lib\site-packages\pynndescent\__init__.py", line 3, in
from .pynndescent_ import NNDescent, PyNNDescentTransformer
File "C:\Anaconda3\envs\squidpy\lib\site-packages\pynndescent\pynndescent_.py", line 21, in
import pynndescent.sparse as sparse
File "C:\Anaconda3\envs\squidpy\lib\site-packages\pynndescent\sparse.py", line 10, in
from pynndescent.utils import norm, tau_rand
File "C:\Anaconda3\envs\squidpy\lib\site-packages\pynndescent\utils.py", line 630, in
def simple_heap_push(priorities, indices, p, n):
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\decorators.py", line 226, in wrapper
disp.compile(sig)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\dispatcher.py", line 979, in compile
cres = self._compiler.compile(args, return_type)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\dispatcher.py", line 141, in compile
status, retval = self._compile_cached(args, return_type)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\dispatcher.py", line 155, in _compile_cached
retval = self._compile_core(args, return_type)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\dispatcher.py", line 168, in _compile_core
cres = compiler.compile_extra(self.targetdescr.typing_context,
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 686, in compile_extra
return pipeline.compile_extra(func)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 428, in compile_extra
return self._compile_bytecode()
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 492, in _compile_bytecode
return self._compile_core()
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 471, in _compile_core
raise e
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler.py", line 462, in _compile_core
pm.run(self.state)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_machinery.py", line 343, in run
raise patched_exception
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_machinery.py", line 334, in run
self._runPass(idx, pass_inst, state)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_lock.py", line 35, in _acquire_compile_lock
return func(*args, **kwargs)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_machinery.py", line 289, in _runPass
mutated |= check(pss.run_pass, internal_state)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\compiler_machinery.py", line 262, in check
mangled = func(compiler_state)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\typed_passes.py", line 396, in run_pass
lower.lower()
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 138, in lower
self.lower_normal_function(self.fndesc)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 192, in lower_normal_function
entry_block_tail = self.lower_function_body()
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 221, in lower_function_body
self.lower_block(block)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 235, in lower_block
self.lower_inst(inst)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 381, in lower_inst
self.storevar(val, inst.target.name)
File "C:\Anaconda3\envs\squidpy\lib\site-packages\numba\core\lowering.py", line 1355, in storevar
raise AssertionError(msg)
AssertionError: Failed in nopython mode pipeline (step: native lowering)
Storing i64 to ptr of i16 ('size'). FE type uint16
This was with numba 0.54.1, but also with 0.53.0, and I even tried downgrading to python 3.8.10, but no luck.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with pynndescent/__init__.py and follow its imports through pynndescent_.py, sparse.py, and utils.py, using the Python, pynndescent, and numba versions reported in the issue. Reproduce the import failures in a comparable environment and identify the affected compatibility boundary. Done means importing pynndescent succeeds without either reported error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100