Многие IDE Python могут похвастаться предоставлением автозавершения кода (понимание кода), PyCharm - одна из таких IDE. Однако мне кажется, что предоставленное автозавершение кода крайне ограничено. Позвольте мне привести пример, чтобы прояснить ситуацию:
import numpy as np
m = np.random.random((3,5))
m.
Нажатие CTRL-пробела после "m". не даст мне завершения кода, как бы сильно я ни ударил;) .. Я предполагаю, что это потому, что IDE должна будет сделать вывод типа, чтобы узнать тип переменной 'm', а это не ' t тривиально в области динамических языков программирования.
Теперь PyCharm поставляется с параметром «Сбор информации о типах времени выполнения для анализа кода», что действительно звучит многообещающе. Однако, похоже, это не решает проблему, упомянутую выше. Я все еще не могу получить завершение кода для переменной 'm'.
Пока что я нашел только один способ получить автозавершение кода для переменных в PyCharm:
import numpy as np
m = np.random.random((3,5))
''':type : np.matrix'''
m.
В этом примере я могу получить завершение кода при нажатии CTRL-пробела после «m.», И это потому, что я помогаю IDE, указывая тип переменной с помощью строки документации. Однако я не удовлетворен этим способом завершения кода, потому что он добавляет ненужную многословность к коду со всеми этими строками документации (не говоря уже о дополнительном вводе с клавиатуры) ...
IPython спешит на помощь .. (может быть?)
Теперь, если мы запустим IPython в Linux-терминале и введем первый фрагмент кода, мы сможем получить завершение кода полностью, даже для переменной m. (где завершение кода в IPython достигается нажатием TAB вместо CTRL-пробела) ..
У меня нет большого опыта работы с IPython, но я полагаю, что слышал что-то о том, что IPython постоянно выполняет код в цикле или что-то в этом роде ...
Я думаю, что можно использовать IPython для достижения НАСТОЯЩЕГО завершения кода для всех переменных в редакторе PyCharm ....
Есть ли способ настроить PyCharm для использования IPython для автозавершения кода?
Обратите внимание, что меня не устраивает отправка кода в окно / консоль терминала или что-то в этом роде, мне нужно завершение кода внутри редактора PyCharm ...
Я рассмотрел такие вопросы, как этот Добавление ipython в качестве интерпретатора в Pycharm Ubuntu, но, похоже, речь идет об использовании IPython в консоли, а не в редакторе ... Есть также много вопросов, касающихся автозавершения кода в IDE, но все они, похоже, имеют один и тот же неудовлетворительный уровень кода -завершение как PyCharm ...
Моя установка
- ОС: тестирование Debian
- python: Python3 и IPython3
- IDE: профессиональная версия Pycharm 3.0.2