MacOS 使用ssh2-python报错ImportError: dlopen ... _libssh2_channel_direct_tcpip_ex

环境

  • Apple M3 Pro
  • MacOS 14.1
  • Python 3.9
  • parallel-ssh==2.14.0
  • ssh2-python==1.1.2.post1

报错信息

复制代码
  File "./manager.py", line 16, in <module>
    from pssh.clients import ParallelSSHClient
  File ".env/lib/python3.9/site-packages/pssh/clients/__init__.py", line 19, in <module>
    from .native import ParallelSSHClient, SSHClient
  File ".env/lib/python3.9/site-packages/pssh/clients/native/__init__.py", line 19, in <module>
    from .parallel import ParallelSSHClient
  File ".env/lib/python3.9/site-packages/pssh/clients/native/parallel.py", line 20, in <module>
    from .single import SSHClient
  File ".env/lib/python3.9/site-packages/pssh/clients/native/single.py", line 30, in <module>
    from ssh2.session import Session, LIBSSH2_SESSION_BLOCK_INBOUND, LIBSSH2_SESSION_BLOCK_OUTBOUND
ImportError: dlopen(.env/lib/python3.9/site-packages/ssh2/session.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_libssh2_channel_direct_tcpip_ex'

解决方式

复制代码
alias ibrew='arch -x86_64 /usr/local/bin/brew' # X86 Homebrew
ibrew install libssh2   # 本次安装的最新版本 stable 1.11.0
export LIBSSH2_DIR=$(ibrew --prefix libssh2)
export LDFLAGS="-L$LIBSSH2_DIR/lib"
export CFLAGS="-I$LIBSSH2_DIR/include"

pip uninstall -y pssh ssh2-python
pip install parallel-ssh==2.14.0 ssh2-python==1.1.2.post1 --no-cache-dir

安装完依赖的lib后,服务正常运行。

复制代码
otool -L .env/lib/python3.9/site-packages/ssh2/session.cpython-39-darwin.so

.env/lib/python3.9/site-packages/ssh2/session.cpython-39-darwin.so:
	/usr/local/opt/libssh2/lib/libssh2.1.dylib (compatibility version 2.0.0, current version 2.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.100.3)

或者

复制代码
python -c "from ssh2.session import Session; print('Success')"
相关推荐
hangyuekejiGEO9 小时前
临沂GEO技术服务方案对比分析
大数据·人工智能·python
xin_yao_xin10 小时前
Conda 环境的 CUDA PATH 配置指南
开发语言·python·conda·cuda
he___H10 小时前
基于LCEL的联想
开发语言·python·langchain
想会飞的蒲公英10 小时前
TF-IDF + 随机森林中文文本分类全链路实战:从训练脚本到 Flask API + Streamlit 前端
人工智能·pytorch·python·随机森林·分类·flask·tf-idf
FriendshipT10 小时前
Ultralytics:解读C3模块
人工智能·pytorch·python·深度学习·目标检测
极光代码工作室10 小时前
基于深度学习的异常行为检测系统
人工智能·python·深度学习·神经网络·机器学习
承渊政道10 小时前
【Python学习】(了解Python背景知识、搭建 Python 环境以及安装PyCharm)
python·学习·pycharm·搭建python环境
川石课堂软件测试10 小时前
性能测试|Nginx中间件监控与调优
linux·python·nginx·中间件·单元测试·压力测试·harmonyos
小呀小叮当~10 小时前
OpenAI Codex 桌面版(Windows / macOS)体验分享:AI 编程效率再次提升
人工智能·windows·macos
myenjoy_110 小时前
I2S 音频与数字音频接口详解
macos·音视频·xcode