2017-08-25 5 views
1

J'utilise le paquet DyNet depuis un moment déjà.L'achèvement du code PyCharm donne des suggestions obsolètes

Aujourd'hui je l'ai mis à jour la dernière version (version 2.0, via 'pip install dynet').

Le problème est que l'achèvement du code de PyCharm me donne toujours les mêmes suggestions que précédemment, même si l'API du paquet a changé (certaines méthodes ont été supprimées, d'autres ont été ajoutées).

Par exemple, après le code suivant:

import dynet 
m = dynet.Model() 
complétion de code

suggère que les méthodes de la load_all »et « SAVE_ALL » qui n'existe plus (utilisé pour exister dans la version précédente, je l'avais installé, il ne existe sur mon système). D'un autre côté, la méthode 'populate' (qui n'existait pas auparavant et qui a été ajoutée) n'apparaît pas du tout dans les suggestions (et quand ma souris survole dessus, j'obtiens une popup disant 'référence d'attribut non résolue') .

J'ai essayé de trouver un moyen d'effacer le cache de complétion de code ou de le forcer à mettre à jour, mais tout ce que j'ai essayé a échoué. Est-ce que quelqu'un sait comment je peux résoudre ce problème? Dans le cas où cela est important, j'ai rencontré ce problème sur PyCharms version 2017.2.1 et 2017.2.2 et mon interpréteur est défini comme python sur Windows Subsystem pour Linux (WSL), à laquelle PyCharm se connecte via SSH.

Merci

+0

Avez-vous essayé 'File> Invalidate caches/Restart'? Avez-vous essayé de désinstaller sont ré-installation à partir de l'interface d'installation de PyCharm? – nanotek

+0

Essayé les deux mais aucun n'a fonctionné – omerkatz

Répondre

1

Cela peut être un bogue DyNet. Ils disent qu'il est écrit en C++ avec des bindings Python, et il semble que les bindings Python n'ont pas été mis à jour correctement (basé sur ce que vous dites)

Si vous regardez le fichier dynet_viz.py dans leur dépôt git, vous pouvez voir où ils déclarent class Model. Je ne comprends pas l'interaction Python/C++, mais je pense que c'est là que PyCharm obtient ses informations. Vous pouvez voir les méthodes save_all, load_all, etc. sont là, et il n'y a pas de méthode populate.

Si vous y tenez beaucoup, je recommande de soumettre un rapport de bogue à DyNet.

Note: Je n'ai jamais eu DyNet installé avant aujourd'hui, et je vois le même comportement que vous. J'ai également vérifié que j'ai effectivement la version 2.0

+0

À droite, PyCharm prend les suggestions de 'dynet_viz.py' mais le code courant fonctionnera des modules compilés par Cython. –

0

J'ai eu ce problème avec l'interpréteur à distance. this est ce qui m'a aidé. (deuxième réponse par dal),