Там какой-либо путь состоит в том, чтобы заставить Python omnicomplete работать с несистемными модулями в энергии?

Если вам нужно запустить какой-нибудь код « после запуска SpringApplication », вы должны использовать ApplicationRunner или CommandLineRunner - они работают в таким же образом . 118]

ApplicationListener или @EventListener с ApplicationReadyEvent делают то же самое.

См. Мой пример .

Вариант, который вы выберете, зависит от ваших предпочтений.

9
задан andrew 13 October 2008 в 22:08
поделиться

6 ответов

Я получаю завершение для своих собственных модулей в моем PYTHONPATH или пакетах сайта. Я не уверен, какую версию pythoncomplete.vim сценария Вы используете, но можно хотеть удостовериться, что это является последним.

Править: Вот некоторые примеры того, что я вижу в своей системе...

Этот файл (mymodule.py), я puth в каталоге в PYTHONPATH, и затем в пакетах сайта. Оба раза я смог получить снимок экрана ниже.

myvar = 'test'

def myfunction(foo='test'):
    pass

class MyClass(object):
    pass
2
ответ дан 4 December 2019 в 20:26
поделиться

После того как я генерировал ctags для одного из моих пакетов сайта, он начал работать на тот пакет - таким образом, я предполагаю, что функция omnicomplete зависит от ctags для non-sys модулей.

Править: Не верный вообще.

Вот проблема - плохое тестирование с моей стороны - omnicomplete работало на части моего проекта, просто не большая часть из нее.

Проблема была то, что я работаю над django проектом, и для импорта django.db, необходимо было установить переменную среды. Так как я не мог импортировать django.db, любой класс, который наследовался django.db или любому модулю, который импортировал класс, который наследовался django.db, не завершится.

3
ответ дан 4 December 2019 в 20:26
поделиться

Просто натыкался на это на Python reddit сегодня вечером: PySmell. Похож на то, что Вы ищете.

PySmell является Python помощник завершения IDE.

Это пытается статически проанализировать исходный код Python, не выполняя его, и генерирует информацию о структуре проекта, которую могут использовать инструменты IDE.

2
ответ дан 4 December 2019 в 20:26
поделиться

Я думаю Ваш после pydiction сценария. Это позволяет Вам добавить свой собственный материал и пакеты сайта к завершенному omni.

В то время как Ваш в нем, добавляют следующие к Вашему python.vim файлу...

 set iskeyword+=.

Это позволит Вам автоматически заполнить функции пакета, например, если Вы входите...

 os.path.

и затем [CTRL] [N], Вы получите список функций для os.path.

0
ответ дан 4 December 2019 в 20:26
поделиться

Хотя важно отметить, что вы должны правильно установить переменную среды PYTHONPATH в соответствии с предыдущий ответ, в Vim есть заметная ошибка , которая препятствует работе полного завершения при сбое импорта . В Vim 7.2.79 эта ошибка не исправлена.

2
ответ дан 4 December 2019 в 20:26
поделиться

Совет по устранению неполадок: убедитесь, что модуль, который вы пытаетесь комплексно завершить, может быть импортирован с помощью VIM. У меня был синтаксически правильный Python, который не нравился VIM:

:python import {module-name}
 Traceback (most recent call last):
   File "<string>", line 1, in ?
   File "modulename/__init__.py", line 9
     class empty_paranthesis():
                            ^
 SyntaxError: invalid syntax

Пример, удаление скобок из определения моего класса позволило VIM импортировать модуль, и впоследствии OmniComplete в этом модуле начал работать.

2
ответ дан 4 December 2019 в 20:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: