python-3.x - 成功安装 python-weka-wrapper 后无法使用 weka.core 模块“没有名为'weka.core'的模块”
问题描述
我已经安装了 python-weka-wrapper 及其所有依赖项,如下面的命令所示:
sudo -H pip3 install python-weka-wrapper3
Requirement already satisfied: python-weka-wrapper3 in /usr/local/lib/python3.6/dist-packages/python_weka_wrapper3-0.1.7-py3.6.egg
Requirement already satisfied: javabridge>=1.0.14 in /usr/local/lib/python3.6/dist-packages (from python-weka-wrapper3)
Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages/numpy-1.17.0-py3.6-linux-x86_64.egg (from python-weka-wrapper3)
但是,当我尝试导入weka.core.converters时,出现以下错误:
No module named 'weka.core'.
此外,我可以在目录中找到所有这些模块
/usr/local/lib/python3.6/dist-packages/python_weka_wrapper3-0.1.7-py3.6.egg/weka
我也可以用python2.7导入weka.core.converters
,但是我真的需要用python3。
我的机器信息:操作系统:Ubuntu 18.0.4
蟒蛇:3.6.8 & 2.7.15
解决方案
我不确定您在安装中做错了什么,但这里是我为Python 2.7和3.6安装python-weka-wrapper执行的步骤,在新安装的(并且完全是最新的)上Ubuntu 18.04.1:
首先,确保已经pip
安装并且可以编译源代码:
sudo apt-get install python-pip python3-pip virtualenv build-essential
虽然推荐使用Oracle JDK,但您也可以让它与 OpenJDK 一起使用,只需确保也安装源:
sudo apt-get install openjdk-8-source openjdk-8-jdk
我不是Anaconda的忠实粉丝,因为我觉得它太过分了,尤其是因为virtualenv
它以更精简、更清洁和更快的方式做事。如果您不再需要这些虚拟环境,下面的说明会创建目录(pww27
以及在您的当前目录中),您可以简单地删除这些目录。pww36
但是,我还在下面列出了有关如何使用 Anaconda 的说明。
每个虚拟环境都会运行一个测试命令:导入jvm
模块,启动和停止 JVM,使用python -c "..."
, 检查环境是否正常工作。此命令将生成类似于以下内容的输出(当然,路径会有所不同):
DEBUG:weka.core.jvm:Adding bundled jars
DEBUG:weka.core.jvm:Classpath=['/home/fracpete/pww36/lib/python3.6/site-packages/javabridge/jars/rhino-1.7R4.jar', '/home/fracpete/pww36/lib/python3.6/site-packages/javabridge/jars/runnablequeue.jar', '/home/fracpete/pww36/lib/python3.6/site-packages/javabridge/jars/cpython.jar', '/home/fracpete/pww36/lib/python3.6/site-packages/weka/lib/python-weka-wrapper.jar', '/home/fracpete/pww36/lib/python3.6/site-packages/weka/lib/weka.jar']
DEBUG:weka.core.jvm:MaxHeapSize=default
DEBUG:weka.core.jvm:Package support disabled
好的,让我们创建虚拟环境并测试它们:
1. Python 2.7的虚拟环境(virtualenv):
virtualenv -p /usr/bin/python2.7 pww27
pww27/bin/pip install numpy
pww27/bin/pip install javabridge
pww27/bin/pip install python-weka-wrapper
pww27/bin/python -c "import weka.core.jvm as jvm; jvm.start(); jvm.stop()"
2. Python 3.6的虚拟环境(virtualenv):
virtualenv -p /usr/bin/python3.6 pww36
pww36/bin/pip install numpy
pww36/bin/pip install javabridge
pww36/bin/pip install python-weka-wrapper3
pww36/bin/python -c "import weka.core.jvm as jvm; jvm.start(); jvm.stop()"
3. Python 2.7(anaconda3-2019.07)的虚拟环境:
conda create -n pww27 python=2.7
conda activate pww27
pip install numpy
pip install javabridge
pip install python-weka-wrapper
python -c "import weka.core.jvm as jvm; jvm.start(); jvm.stop()"
conda deactivate
4. Python 3.6(anaconda3-2019.07)的虚拟环境:
conda create -n pww36 python=3.6
conda activate pww36
pip install numpy
pip install javabridge
pip install python-weka-wrapper
python -c "import weka.core.jvm as jvm; jvm.start(); jvm.stop()"
conda deactivate
推荐阅读
- javascript - 我有一个共享的谷歌驱动器文件夹。有什么方法可以列出我的谷歌表格中的所有文件吗?
- python - tkinter 文件对话框中的 asksaveasfile 和 asksaveasfilename 有什么区别?
- c++ - 为什么 GCC 以这种方式在堆栈上排序整数?
- python - JupyterNotebook / JupyterLab:如何在出现错误时自动重新运行单元格?
- azure - 访问 Azure Pipelines 中私有 Nuget 服务器中托管的 Nuget 包
- windows - 无法在 Windows 10 上安装电子应用程序
- omnet++ - 为无线节点的多无线电接口分配不同的信道
- arrays - 设计无线传感器算法
- jquery - 输入代码后如何使用 AJAX 加载另一个页面?
- python - 我一直在解决 HackerRank 中的问题,但对于所有问题,我一次又一次地收到“运行时错误:(”。我在这里犯了什么错误......?