Как сделать, чтобы PyCharm / PyDev / другие IDE предлагали завершение кода для пространств имен IronPython? - PullRequest
4 голосов
/ 13 ноября 2011

Мне нравится PyCharm, и я использовал его раньше для своих проектов на Python, но я только начал возиться с IronPython и не могу понять, как заставить PyCharm или любую другую IDE в этом отношении (кроме VS, который работает нормально) распознавать библиотеки .NET.

Например, у меня есть код:

from System.Environment import *

path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

Приведенный выше код работает нормально, но часть «Система» везде подчеркнута серым с сообщением «Неразрешенная система ссылок». Документация IronPython объясняет, что System - это не модуль, а пространство имен. Если я сделаю type(system), я получу <type 'namespace#'>. Так есть ли способ заставить PyCharm / PyDev распознавать пространства имен? Кстати, ПУТЬ в порядке, все в порядке.

Ответы [ 3 ]

5 голосов
/ 14 ноября 2011

По соображениям производительности PyCharm не генерирует заглушки Python для сборок .NET по умолчанию.Вы можете запустить генерацию, поместив курсор на неразрешенную ссылку в операторе импорта, нажав Alt-Enter и выбрав быстрое исправление «Создать заглушки для двоичного модуля ...».

3 голосов
/ 28 ноября 2011

Просто чтобы заметить, это должно работать должным образом в PyDev (просто убедитесь, что вы сконфигурировали интерпретатор IronPython и сконфигурировали свой проект как проект IronPython).

Еще одно замечание, что приведенный выше код на самом деле должен быть:

from System import Environment

path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
0 голосов
/ 13 ноября 2011

Не PyCharm, но у Майкла Фурда есть информация о том, как это сделать, с Wing: http://www.voidspace.org.uk/ironpython/wing-how-to.shtml - PyCharm может иметь какой-то похожий механизм.

...