Python导入模块在提示符下工作,但不在脚本中工作
我正在从他们的文档中执行上述weka python包装器的示例代码。所以我确信代码中没有问题。所有模块均已安装。但当代码作为脚本运行时(通过在空闲状态下按F5),代码不起作用。它将抛出以下错误:Python导入模块在提示符下工作,但不在脚本中工作,python,weka,python-idle,Python,Weka,Python Idle,我正在从他们的文档中执行上述weka python包装器的示例代码。所以我确信代码中没有问题。所有模块均已安装。但当代码作为脚本运行时(通过在空闲状态下按F5),代码不起作用。它将抛出以下错误: import weka.core.jvm as jvm jvm.start() data_dir = "C:/Data/Python/Weka/Data/" from weka.core.converters import Loader loader = Loader(classname="weka.
import weka.core.jvm as jvm
jvm.start()
data_dir = "C:/Data/Python/Weka/Data/"
from weka.core.converters import Loader
loader = Loader(classname="weka.core.converters.ArffLoader")
data = loader.load_file(data_dir + "logistic.arff")
data.class_is_last()
print(data)
回溯(最近一次呼叫最后一次):
文件“C:\Data\Python\Weka\Weka.py”,第1行,在
将weka.core.jvm导入为jvm
文件“C:\Data\Python\Weka\Weka.py”,第1行,在
将weka.core.jvm导入为jvm
ImportError:没有名为core.jvm的模块
但是,当我将代码逐行复制并粘贴到IDLE命令提示符时,代码就起作用了。不知道为什么。我哪里出错了?尝试将文件名更改为与要导入的任何模块的名称不同的名称。例如,将
weka.py
更改为myscript.py
脚本的确切名称是什么?确保它不会与您试图导入的任何模块发生任何冲突。我的第一个直觉是,当前目录、PYTHONPATH,甚至Python程序(即idle使用3x,shell设置为使用2.7)启动时不同-将名称从weka.py更改为其他有效的名称。Rahul答案的线索在回溯中。第一行是作为主模块执行的文件。第三行是它试图导入的文件。两者都是一样的。请注意,import weka.core.jvm
首先导入weka,然后是import weka.core
,最后是请求的导入。
Traceback (most recent call last):
File "C:\Data\Python\Weka\weka.py", line 1, in <module>
import weka.core.jvm as jvm
File "C:\Data\Python\Weka\weka.py", line 1, in <module>
import weka.core.jvm as jvm
ImportError: No module named core.jvm