【问题标题】:Python import module works in prompt, but not in scriptPython导入模块在提示符下工作,但不在脚本中
【发布时间】:2016-02-24 20:11:05
【问题描述】:
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)

我正在从他们的文档中执行上述 weka python 包装器的示例代码。所以我确信代码没有问题。所有模块均已安装。但是当它作为脚本运行时(通过在 IDLE 中按 F5),代码不起作用。它抛出以下错误:

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

但是当我将代码逐行复制并粘贴到 IDLE 命令提示符时,该代码可以正常工作。不知道为什么。我哪里做错了?

【问题讨论】:

  • 你给这个脚本起什么名字了?确保它不会与您尝试导入的任何模块发生任何冲突。
  • 我的第一个预感是当前目录,PYTHONPATH,甚至是 Python 程序(即空闲使用 3x,shell 设置为使用 2.7)启动不同 - stackoverflow.com/questions/15252040/…
  • 将名称从 weka.py 更改为其他名称。

标签: python weka python-idle


【解决方案1】:

尝试将文件名更改为不是您要导入的任何模块的名称。例如将weka.py 更改为myscript.py

【讨论】:

  • Rahul 答案的线索在回溯中。第一行是作为主模块执行的文件。第三行是它尝试导入的文件。两者都是一样的。请注意,import weka.core.jvm 首先是 import weka,然后是 import weka.core,最后是请求的导入。
猜你喜欢
  • 1970-01-01
  • 2019-03-17
  • 2014-04-17
  • 2018-10-06
  • 2020-09-15
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多