导入networkx时报错:cannot import name 'empty_generator' from 'networkx.utils'
解决
cannot import name 'empty_generator' from 'networkx.utils'错误 这个问题大概率是NetworkX版本兼容问题,或是环境里残留了旧版本文件导致的,试试下面的方法:
彻底清理旧版本后重装指定版本
- 先完全卸载NetworkX:
pip uninstall -y networkx - 用
pip show networkx查看之前的安装路径,找到对应的networkx文件夹手动删除(避免残留文件干扰) - 安装一个已知兼容的稳定版本,比如2.8.8:
pip install networkx==2.8.8
(注:empty_generator在NetworkX 3.x版本中已被移除,如果你之前装的是3.x版本,换回2.x的稳定版就能解决)
- 先完全卸载NetworkX:
用虚拟环境隔离全局包冲突
如果全局环境里的其他包和NetworkX版本冲突,创建虚拟环境是最稳妥的办法:- 创建虚拟环境:
python -m venv nx_env - 激活虚拟环境:
- Windows:
nx_env\Scripts\activate - Linux/macOS:
source nx_env/bin/activate
- Windows:
- 在虚拟环境里重新安装NetworkX:
pip install networkx
- 创建虚拟环境:
检查并更新依赖包
部分依赖包(如numpy、scipy)版本异常也可能引发这个问题,执行以下命令更新所有基础依赖:pip install --upgrade pip setuptools numpy scipy
完成以上步骤后,打开Python终端执行import networkx as nx,应该就能正常导入了。
内容的提问来源于stack exchange,提问作者Owen
相关产品推荐
相关产品推荐

