Ошибка «ImportError: Не удалось найти« input_readers »на пути« map limit »» при попытке запустить задание mapReduce - PullRequest
2 голосов
/ 16 октября 2011

Я получаю эту ошибку ... "ImportError: Не удалось найти 'input_readers' на пути 'карта уменьшения'" при попытке запустить задание уменьшения моей карты через страницу запуска http://localhost:8080/mapreduce.

Похоже, моя проблема похожа на эту запись, Ошибка импорта API AppEngine mapper . К сожалению, однозначных ответов не было.

Я упростила его до этого крошечного тестаmamaduduce.py:

from google.appengine.ext import db

class TestEntity(db.Model):
    value = db.StringProperty()

def mapperhandler(test):
    print test.value
    return

И мой mapreduce.yaml:

mapreduce:
- name: Simplest MapReduce
  mapper:
    handler: testmapreduce.mapperhandler
    input_reader: mapreduce.input_readers.DatastoreInputReader
    params:
    - name: entity_kind
      default: testmapreduce.TestEntity

Одним из возможных объяснений является то, что присутствие __init__.py не имеет никакого эффекта (будь то в корне проекта, каталоге mapreduce или в обоих). Я уверен, что я делаю ошибку новичка, но за последние пару дней я прочитал каждую часть документации и все примеры, которые я могу найти. Благодарю.

UPDATE: Я получаю ту же ошибку при попытке вызвать ее через ...

control.start_map(
   "Give awards",
   "testmapreduce.mapperhandler",
   "mapreduce.input_readers.DatastoreInputReader",
   {"entity_kind": "testmapreduce.TestEntity"},
   shard_count=10)

UPDATE: По просьбе трассировки стека - дайте мне знать, что еще будет полезно ...

ERROR    2011-10-16 17:09:27,216 _webapp25.py:464] Could not find 'input_readers' on path 'mapreduce'
Traceback (most recent call last):
 File "/Develop/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/_webapp25.py", line 701, in __call__
   handler.get(*groups)
 File "/Users/lc/PycharmProjects/mrtest/testmapreduce.py", line 22, in get
   shard_count=10)      # handle web form test interface
 File "/Users/lc/PycharmProjects/mrtest/mapreduce/control.py", line 94, in start_map
   transactional=transactional)
 File "/Users/lc/PycharmProjects/mrtest/mapreduce/handlers.py", line 811, in _start_map
   mapper_input_reader_class = mapper_spec.input_reader_class()
 File "/Users/lc/PycharmProjects/mrtest/mapreduce/model.py", line 393, in input_reader_class
   return util.for_name(self.input_reader_spec)
 File "/Users/lc/PycharmProjects/mrtest/mapreduce/util.py", line 94, in for_name
   module = for_name(module_name, recursive=True)
 File "/Users/lc/PycharmProjects/mrtest/mapreduce/util.py", line 102, in for_name
   short_name, module_name))
ImportError: Could not find 'input_readers' on path 'mapreduce'
INFO     2011-10-16 22:09:27,253 dev_appserver.py:4247] "GET /giveawards HTTP/1.1" 500 -

1 Ответ

1 голос
/ 18 октября 2011

Эта проблема заключалась в том, что я использовал версию интерпретатора Python 2.7 в моей локальной среде.Когда я переключился на 2.5, он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...