安装sklearn-genetic-opt后调用sklearn_genetic报SyntaxError错误
问题现象
安装sklearn-genetic-opt依赖库完成后,运行以下代码导入库内功能组件时触发SyntaxError语法错误:
from sklearn_genetic import GASearchCV from sklearn_genetic.space import Continuous from sklearn_genetic.plots import plot_fitness_evolution, plot_search_space
完整报错栈信息如下:
File c:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\IPython\core\interactiveshell.py:3398 in run_code exec(code_obj, self.user_global_ns, self.user_ns) Input In [9] in <cell line: 26> from sklearn_genetic import GASearchCV File c:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\sklearn_genetic\__init__.py:1 in <module> from .genetic_search import GASearchCV, GAFeatureSelectionCV File c:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\sklearn_genetic\genetic_search.py:6 in <module> from deap import base, creator, tools File c:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\deap\base.py:192 raise TypeError, ("Both weights and assigned values must be a " ^ SyntaxError: invalid syntax
错误原因
报错指向deap库base.py文件第192行的raise TypeError, ("Both weights and assigned values must be a ")写法,这是Python 2 专属的异常抛出语法,Python 3 版本已完全废弃该逗号分隔的异常抛出写法,仅支持raise TypeError("错误信息")的标准格式。
问题根因是当前Python环境中安装的deap为适配Python 2的过旧版本,和本地运行的Python 3.10环境不兼容。
解决方法
按顺序执行以下操作即可修复问题:
- 卸载当前环境中的旧版
deap,执行命令:
pip uninstall -y deap
- 安装适配Python 3的
deap稳定版本,要求版本号不低于1.3.3,执行命令:
pip install deap>=1.3.3
- 验证修复效果:重新运行最开始的导入代码,即可正常导入相关组件,不会再触发该语法错误。
如果执行完上述操作后仍存在版本兼容类报错,可以直接将
sklearn-genetic-opt也升级到最新版本,保证依赖链版本完全匹配,执行命令:pip install --upgrade sklearn-genetic-opt
内容的提问来源于stack exchange,提问作者Dedy Darmawan
相关产品推荐
相关产品推荐

