Skip to content
Advertisement

python can’t load clang library under cygwin environment

I installed the latest cygwin64 under windows 10, then started to install some cygwin packages like python3.9 and clang 8.0.1, then via cygwin terminal, pip3 install clang==8.0.1 Now, I’m trying the following:

$ python3 
Python 3.9.10 (main, Jan 20 2022, 21:37:52) 
[GCC 11.2.0] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import clang.cindex
>>> index = clang.cindex.Index.create()
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/clang/cindex.py", line 4172, in get_cindex_library
    library = cdll.LoadLibrary(self.get_filename())
  File "/usr/lib/python3.9/ctypes/__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/clang/cindex.py", line 2698, in create
    return Index(conf.lib.clang_createIndex(excludeDecls, 0))
  File "/usr/local/lib/python3.9/site-packages/clang/cindex.py", line 212, in __get__
    value = self.wrapped(instance)
  File "/usr/local/lib/python3.9/site-packages/clang/cindex.py", line 4146, in lib
    lib = self.get_cindex_library()
  File "/usr/local/lib/python3.9/site-packages/clang/cindex.py", line 4177, in get_cindex_library
    raise LibclangError(msg)
clang.cindex.LibclangError: No such file or directory. To provide a path to libclang use Config.set_library_path() or Config.set_library_file().

What I understand is that it fails to open a clang library, after searching for it, I found a lot of libraries at /usr/lib, and one of them is libclang.dll.a, I tried to make a symbolic link for it according some other SO questions suggest like:

ln -s /usr/lib/libclang.dll.a /usr/lib/libclang.so.1
ln -s /usr/lib/libclang.dll.a /usr/lib/libclang.so
ln -s /usr/lib/libclang.dll.a /usr/lib/python3.9/libclang.so.1
ln -s /usr/lib/libclang.dll.a /usr/lib/python3.9/libclang.so

but with no luck, any help as I’m not familiar with python.

Advertisement

Answer

The issue is fixed now. The root cause was that I installed the latest version of each package. so I installed python v3.9 and clang v8.0.1. python v3.9 was expecting clang v10 which is not available at cygwin repos, and the latest python bindings for clang was for version v3.7, so I removed python v3.9 and installed version v3.7 which expects the latest clang version available.

P.S. I removed this package as it has no need pip3 install clang==8.0.1

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement