安装python-weka-wrapper3后Python3无法导入weka.core模块的问题
解决Python3.6无法导入
weka.core模块的问题 你的安装流程看似没问题,但Python3.6没能识别到已安装的模块,下面是几个针对性的解决方案,按顺序尝试应该能搞定问题:
1. 确认pip3对应Python3.6版本
先排查是不是安装时用错了pip版本,运行这条命令:
pip3 --version
看输出里的Python版本是不是3.6.8。如果显示的是其他Python3版本(比如3.7),说明你之前的安装是给其他版本做的,得用pip3.6重新安装:
sudo -H pip3.6 install python-weka-wrapper3
2. 检查Python3.6的模块搜索路径
打开Python3.6的交互环境,运行:
import sys print(sys.path)
看看输出里有没有/usr/local/lib/python3.6/dist-packages/python_weka_wrapper3-0.1.7-py3.6.egg这个路径。如果没有,说明Python3.6没把这个egg文件加入搜索路径,有两种解决方式:
临时解决(仅当前脚本生效)
在你的Python代码开头添加:
import sys sys.path.append("/usr/local/lib/python3.6/dist-packages/python_weka_wrapper3-0.1.7-py3.6.egg") # 现在再导入模块 from weka.core.converters import ...
永久解决(所有Python3.6脚本生效)
创建一个.pth文件,让Python自动加载这个路径:
sudo echo "/usr/local/lib/python3.6/dist-packages/python_weka_wrapper3-0.1.7-py3.6.egg" > /usr/local/lib/python3.6/dist-packages/weka.pth
这样每次启动Python3.6时,都会自动把这个egg路径加入到sys.path里。
3. 直接解压egg文件(最稳妥的方案)
如果egg文件的识别存在兼容性问题,你可以直接把它解压到Python3.6的模块目录:
cd /usr/local/lib/python3.6/dist-packages # 解压egg文件 unzip python_weka_wrapper3-0.1.7-py3.6.egg -d weka_temp # 把解压后的weka目录移到dist-packages下 mv weka_temp/weka . # 清理临时文件 rm -rf weka_temp python_weka_wrapper3-0.1.7-py3.6.egg
这样模块就直接放在dist-packages目录下,Python肯定能找到它。
4. 检查文件权限
如果以上方法都无效,可能是权限问题导致Python3.6无法读取egg文件,运行这条命令修改权限:
sudo chmod -R a+r /usr/local/lib/python3.6/dist-packages/python_weka_wrapper3-0.1.7-py3.6.egg
确保所有用户都有读取这个文件的权限。
另外,如果你使用了虚拟环境,记得要在虚拟环境内重新安装这个包——全局安装的包不会被虚拟环境识别到。
内容的提问来源于stack exchange,提问作者Sameer Ahmad
相关产品推荐
相关产品推荐

