Ubuntu18.04安装pyzmq后import zmq提示No module named '_zmq'如何解决
问题原因分析
- 路径优先级冲突:Python导入模块时会优先搜索当前工作目录,如果你的脚本同级目录下存在名为
zmq的文件夹或者zmq.py文件,会优先加载该路径下的内容,而非虚拟环境site-packages中安装的完整pyzmq包,导致内部依赖的_zmq模块找不到。 - pyzmq安装异常:你看到的
_zmq.py大概率是类型存根文件,pyzmq核心逻辑是C扩展实现,实际运行需要_zmq.cpython-36m-x86_64-linux-gnu.so这类动态链接库文件,如果安装时没有装对应依赖导致编译失败,只会安装纯Python的表层结构,缺失核心扩展文件就会报这个错。 - 权限不足:虚拟环境site-packages下zmq目录的核心模块文件没有可读权限,Python无法正常加载对应的
_zmq模块。
修复步骤
- 排查路径冲突:在脚本所在目录执行
ls | grep -E '^zmq(\.py)?$',如果存在同名的zmq文件夹或者zmq.py文件,将其重命名或者移动到其他目录后再尝试导入。 - 重装完整pyzmq:
- 先卸载现有pyzmq:
pip uninstall -y pyzmq - 安装系统依赖:
sudo apt update && sudo apt install -y libzmq3-dev python3-dev - 重新编译安装pyzmq:
pip install pyzmq --no-cache-dir
- 先卸载现有pyzmq:
- 修复目录权限:执行
chmod -R 755 /home/upboard/visioonbot/Connect4Py/venv/lib/python3.6/site-packages/zmq/确保所有模块文件有可读权限。 - 验证修复效果:进入虚拟环境后执行
python3 -c "import zmq; print('pyzmq版本:', zmq.__version__)",正常输出版本号即修复完成。
内容的提问来源于stack exchange,提问作者noobie
相关产品推荐
相关产品推荐

