Завершение кода PyCharm дает устаревшие предложения

Я уже давно использую пакет DyNet.

Сегодня я обновил его до последней версии (версия 2.0, через «pip install dynet»).

Проблема в том, что завершение кода PyCharm по-прежнему дает мне те же предложения, что и раньше, даже несмотря на то, что API-интерфейс пакета изменился (некоторые методы удалены, некоторые добавлены).

Например, после следующего кода:

import dynet
m = dynet.Model()

завершение кода предлагает методы «load_all» и «save_all», которых больше не существует (использовался в предыдущей версии, которую я установил, он больше не существует в моей системе). С другой стороны, метод «заполнить» (который раньше не существовал и был добавлен) вообще не отображается в предложениях (и когда моя мышь наводит на него курсор, я получаю всплывающее окно с сообщением «Неразрешенная ссылка на атрибут») .

Я пытался найти способ очистить кэш завершения кода или принудительно обновить его, но все, что я пробовал, не удалось. Кто-нибудь знает, как я могу решить эту проблему?

Если это имеет значение, я столкнулся с этой проблемой в PyCharms версии 2017.2.1 и 2017.2.2, и мой интерпретатор настроен как python в подсистеме Windows для Linux (WSL), к которой PyCharm подключается через ssh.

Спасибо


person omerkatz    schedule 25.08.2017    source источник
comment
Вы пробовали File > Invalidate caches / Restart? Вы пытались удалить или переустановить из интерфейса установки PyCharm?   -  person nanotek    schedule 28.08.2017
comment
Пробовал оба, но ни один не работал   -  person omerkatz    schedule 28.08.2017


Ответы (2)


Это может быть ошибка DyNet. Они говорят, что он написан на C++ с привязками Python, и похоже, что привязки Python могли быть обновлены неправильно (исходя из того, что вы говорите)

Если вы посмотрите на файл dynet_viz.py в их git репозиторий, вы можете увидеть, где они объявляют class Model. Я не понимаю взаимодействие Python/C++, но я думаю, что именно здесь PyCharm получает информацию. Вы видите, что методы save_all, load_all и т. д. есть, а метода populate нет.

Если вы твердо настроены по этому поводу, я рекомендую подать отчет об ошибке в DyNet.

Примечание. До сегодняшнего дня у меня никогда не устанавливался DyNet, и я вижу такое же поведение, как и вы. Я также проверил, что у меня действительно есть версия 2.0.

person nanotek    schedule 29.08.2017
comment
Правильно, PyCharm берет предложения от dynet_viz.py, но фактический код будет запускаться из модулей, скомпилированных Cython. - person Daniel Hershcovich; 08.12.2017

Была эта проблема с удаленным интерпретатором. это мне помогло. (второй ответ Даля),

person Eytan    schedule 29.08.2017