iPython обладает этой превосходной функцией автообновления модулей, и это работает очень хорошо.Поиск импортируемых модулей в Python
В течение самого долгого времени у меня была функция оболочки, которая позволяет мне изменять каталоги до того места, где находится данный модуль. Он делает это, пытаясь импортировать имя модуля из первого аргумента и глядя на его __file__
.
Что я хотел бы сделать, это узнать доступные модули, чтобы я мог написать функцию автозаполнения для этого маленького помощника.
Я знаю, что для модуля ввода я могу сделать что-то вроде dir(module_name)
, и это даст мне то, что мне нужно для этого модуля, но я не уверен, что делать, чтобы узнать, что я могу импортировать, точно так же, как iPython, когда вы сделать что-то вроде:
import [TAB]
Или
import St[TAB]
Каких бы Autocomplete всех модулей, импортируемых начинаются с St
.
Я знаю, как написать функцию автозаполнения, мне интересно только найти способ узнать, что я могу импортировать.
EDIT:
Рытье через код IPython мне удалось найти точную часть, которая делает работу получать все текущие модули для данной среды:
from IPython.core.completerlib import module_completion
for module in module_completion('import '):
print module
Причина я Я печатаю результаты, потому что я действительно использую это для завершения ZSH, поэтому мне нужно будет обработать результат.
Это похоже на хорошее начало. Спасибо за предложение – alfredodeza