2016-03-28 2 views
2

Я написал модуль, состоящий из одной функции. Я хотел бы быть в состоянии использовать это что-то вроде как tqdm работы:Как открыть функцию в модуле Python?

>>> from tqdm import tqdm 
>>> tqdm 
<function tqdm.tqdm> 

Однако я не могу понять, как установить вещи таким образом. Вот что у меня есть:

>>> from missingno import missingno 
>>> missingno 
<module 'missingno.missingno' from '[...]'> 
>>> missingno.missingno 
<function missingno.missingno.missingno> 

Я уверен, что это было, прежде чем спросило бесчисленное количество раз, но я не уверен в том, как упаковочных работах и ​​не могу найти ответ на эту конкретную загадку.

Это репозиторий: https://github.com/ResidentMario/missingno.

ответ

1

Посмотрев на pandas-profiling Я понял это. Добавьте следующую строку в __init__.py():

from .missingno import missingno

+0

Также, если вы хотите быть действительно супер чистым, добавьте '__all__ = ['missingno']' в ваш '__init __. Py' файл. – gaborous

0

Я не совсем уверен, что ваш вопрос здесь, но я думаю, что вы хотите:

from missingno.missingno import missingno 

Вы можете рассмотреть вопрос о именовании пакет/файл/функции разных вещей ха-ха.

+0

Хочу быть просто 'от missingno импорта missingno', хотя, как [tqdm] (https://github.com/noamraph/tqdm) делает. Проблема в том, что их хранилище, похоже, достигает этого, помещая модуль наверху репозитория (?), А не в папку на уровне модуля, но оба пипа и PyPi отклоняют такую ​​файловую структуру. –

+0

Вы можете написать сценарий, который выполняет установку в отдельное место, и иметь точку PYTHONPATH в этом месте (т. Е. Когда вы устанавливаете каталог под названием «что-то» и поместите missingno.py в этот каталог. Затем укажите PYTHONPATH на «что-то» «). – mwm314

+0

@ResMar no, 'tqdm' не размещает модуль в верхней части репо, а внутри папки' tqdm'. Следовательно, это может ввести в заблуждение, поскольку папка модуля имеет то же имя, что и в верхней папке, но это действительно стандартная иерархия модулей Python. – gaborous

Смежные вопросы