2015-11-22 1 views
2
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 из своего документа. Поэтому я уверен, что в коде нет проблем. Все модули установлены. Но код не работает, когда он запускается как скрипт (нажатием F5 в IDLE). Он бросает следующее сообщение об ошибке:Модуль импорта Python работает в командной строке, но не в скрипте

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. Не знаю, почему. Где я неправ?

+0

Что именно вы назвали сценарием? Убедитесь, что он не сталкивается ни с каким другим модулем, который вы пытаетесь импортировать. – Totem

+1

Моя первая догадка заключается в том, что текущий каталог, PYTHONPATH или даже программа Python (т. Е. Idle использует 3x, а оболочка настроена на использование версии 2.7), запускается различно - http://stackoverflow.com/questions/15252040/how-does- python-find-a-module-file-if-the-import-statement-only-contains-the-fil – user2864740

+0

Изменение имени от weka.py на другое. – user3554510

ответ

2

Попробуйте изменить имя своего файла на то, что не является именем какого-либо модуля, который вы импортируете. Например, изменить weka.py на myscript.py

+0

Это сработало! Спасибо – user3554510

+0

Примите ответ, если он сработает для вас. – Rahul

+0

Ключ к ответу Рахула находится в следе. Первая строка - это файл, исполняемый в качестве основных модулей. Третья строка - это файл, который он пытается импортировать. Оба они одинаковы. Обратите внимание, что 'import weka.core.jvm' сначала' import weka', затем 'import weka.core' и, наконец, запрос на импорт. –

Смежные вопросы