Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python导入模块在提示符下工作,但不在脚本中工作_Python_Weka_Python Idle - Fatal编程技术网

Python导入模块在提示符下工作,但不在脚本中工作

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.

我正在从他们的文档中执行上述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.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