Модуль AttributeError 'Pyro4' не имеет атрибута 'expose' при запуске распределенной LSI gensim

Поэтому я пытаюсь запустить демо-версию gensim для распределенной LSI (вы можете найти ее здесь), но всякий раз, когда я запускаю код, я получаю сообщение об ошибке

AttributeError: module 'Pyro4' has no attribute 'expose'

Я проверил подобные проблемы здесь на stackru, и обычно они вызваны из-за неправильного использования библиотеки.

Однако я не использую Pyro4 напрямую, я использую распределенную БИС, представленную gensim. Так что на моей стороне нет места ошибкам (или я так верю)

Мой код очень прост, вы можете найти его ниже

from gensim import corpora, models, utils
import logging, os, Pyro4
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
os.environ["PYRO_SERIALIZERS_ACCEPTED"] =  'pickle'
os.environ["PYRO_SERIALIZER"] = 'pickle'

corpus = corpora.MmCorpus('wiki_corpus.mm') # load a corpus of nine documents, from the Tutorials
id2word = corpora.Dictionary.load('wiki_dict.dict')

lsi = models.LsiModel(corpus, id2word=id2word, num_topics=200, chunksize=1, distributed=True) # run distributed LSA on nine documents

1 ответ

Решение

Pyro4.expose был добавлен в Pyro4 версии 4.27 с августа 2014 года. Мне кажется, у вас установлена очень старая версия Pyro4, выпущенная до этой даты, и что вашему gensim требуется более поздняя версия.

Проверьте с помощью:

$ python -m Pyro4.configuration | head -3

Возможно, вам следует обновить библиотеку Pyro4... Обратите внимание, хотя, я думаю, gensim не поддерживает самые последние версии Pyro4, поэтому вам, вероятно, следует проверить его руководство на предмет правильной версии, которая вам нужна. Вы всегда можете попробовать установить последнюю версию (4.61 прямо сейчас) и посмотреть, как это происходит.

Я полагаю, вы также можете попытаться найти конкретную поддержку Gensim? https://radimrehurek.com/gensim/support.html

Другие вопросы по тегам