在NetworkX中导入traveling_salesman_problem功能报错如何解决
报错原因
你遇到的两类报错由两个问题共同导致:
- 第一个导入路径
networkx.approximation本身就是错误的,近似算法模块的正确父路径是networkx.algorithms.approximation - 第二个属性报错是因为
traveling_salesman_problem接口没有在approximation模块的根初始化文件中导出,它属于approximation下的traveling_salesman子模块;同时如果你的NetworkX版本低于2.6,也不存在这个接口,因为该功能是2.6版本才正式新增的。
修复步骤
- 先升级NetworkX到2.6及以上版本
pip环境执行命令:pip install --upgrade networkx
conda环境执行命令:conda update networkx
升级完成后可执行import networkx; print(networkx.__version__)确认版本符合要求。 - 使用正确的导入语句
方案1:直接导入目标函数
方案2:按模块层级导入后调用from networkx.algorithms.approximation.traveling_salesman import traveling_salesman_problem # 直接调用即可 # tsp_result = traveling_salesman_problem(你的图参数)import networkx.algorithms.approximation.traveling_salesman as tsp_submodule tsp = tsp_submodule.traveling_salesman_problem # 调用方式:tsp(你的图参数)
内容的提问来源于stack exchange,提问作者Devinity
相关产品推荐
相关产品推荐

