File "/usr/local/ssr/ss/crypto/util.py", line 60, in find_library path = ctypes.util.find_library(name) File "/usr/lib/python3.9/ctypes/util.py", line 341, in find_library _get_soname(_findLib_gcc(name)) or _get_soname(_findLib_ld(name)) File "/usr/lib/python3.9/ctypes/util.py", line 147, in _findLib_gcc if not _is_elf(file): File "/usr/lib/python3.9/ctypes/util.py", line 99, in _is_elf with open(filename, 'br') as thefile: FileNotFoundError: [Errno 2] No such file or directory: b'liblibcrypto.a'
libcrypto
是 OpenSSL 提供的一部分。确保系统中已经安装了 OpenSSL。
sudo apt update
sudo apt install openssl libssl-dev
sudo yum install openssl openssl-devel
确认 libcrypto
是否存在并在系统库路径中:
find /usr/lib /usr/local/lib -name "libcrypto*"
输出应包含类似 /usr/lib/x86_64-linux-gnu/libcrypto.so
或 /usr/local/lib/libcrypto.a
的路径。如果找不到相关文件,说明库没有正确安装。重新安装 OpenSSL 后再测试。比如我的输出就是:
/usr/lib/x86_64-linux-gnu/libcrypto.a /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/x86_64-linux-gnu/pkgconfig/libcrypto.pc /usr/lib/x86_64-linux-gnu/libcrypto.so.3
通过创建一个指向正确文件的符号链接来绕过这个问题:
sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.a /usr/lib/x86_64-linux-gnu/liblibcrypto.a
然后就可以重新执行你之前的代码了。