darvid / python-hyperscan

🐍 A CPython extension for the Hyperscan regular expression matching library.
https://python-hyperscan.readthedocs.io/en/latest/
MIT License
165 stars 28 forks source link

symbol not found in flat namespace '_ch_alloc_scratch' #117

Closed savinoda closed 5 months ago

savinoda commented 6 months ago

Hi all, I'm installing hyperscan on Mac M1 with pip install hyperscan and I get this error:

File "/Users/user/miniconda3/envs/env/lib/python3.10/site-packages/hyperscan/__init__.py", line 3, in <module> from hyperscan._ext import * # noqa: F401, F403 ImportError: dlopen(/Users/user/miniconda3/envs/env/lib/python3.10/site-packages/hyperscan/_ext.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_ch_alloc_scratch'

Is this yet not supported on ARM architecture?

darvid commented 6 months ago

hmm iirc the tests passed on the ARM GH actions runner that built the wheels but I'll take a look

savinoda commented 6 months ago

Thanks, please let me know if you need anything from my side. I've not done anything crazy: just pip install and import it

Wonskcalb commented 6 months ago

I'm having the same issue here, on a fresh new environment (On a Macbook Pro M2 Pro):

❯ pdm init
❯ pdm add hyperscan

Importing hyperscan immediately fails.

❯ pdm run python
Loading dotenv file /private/tmp/test/.env
Python 3.10.12 (main, Jul 31 2023, 18:01:49) [Clang 14.0.3 (clang-1403.0.22.14.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import hyperscan
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/valz/.local/share/pdm/venvs/test-EGPJwhIL-3.10/lib/python3.10/site-packages/hyperscan/__init__.py", line 3, in <module>
    from hyperscan._ext import *  # noqa: F401, F403
ImportError: dlopen(/Users/valz/.local/share/pdm/venvs/test-EGPJwhIL-3.10/lib/python3.10/site-packages/hyperscan/_ext.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_ch_alloc_scratch'

LMK if you want me to provide further information/tests

darvid commented 6 months ago

sorry for the delay, could you please try one of the *_macosx_arm64 wheels from here? i think i might need to bump the release since PyPI doesn't let me replace existing versions of artifacts, so would be good to get a smoke test, although i think it should work now as the previous runner for the arm64 builds wasn't actually arm64 🤦

darvid commented 6 months ago

tested 3.12 on my M2 mbp so will push later assuming no further issues on macOS/arm64

savinoda commented 6 months ago

Hi is the patch being merged soon?

clement-tourriere commented 6 months ago

Tested too on mac M1, and it's working fine. Waiting for the release now :). Thank you for your incredible work !

Wonskcalb commented 6 months ago

sorry for the delay, could you please try one of the *_macosx_arm64 wheels from here? i think i might need to bump the release since PyPI doesn't let me replace existing versions of artifacts, so would be good to get a smoke test, although i think it should work now as the previous runner for the arm64 builds wasn't actually arm64 🤦

No worries, just was able to make it work as well. Thanks for the work!

savinoda commented 5 months ago

@darvid would you please push this?

darvid commented 5 months ago

https://pypi.org/project/hyperscan/

sorry for the delay

latest version is 0.7.7 (yep 7 extra patch increments) because i was 🤬 getting semantic-release working (for future me/maintainers/collaborators, manually publishing all these x-platform artifacts is a massive pita)