Невозможно вызвать функции после создания пакета python

#python #pypi #twine

Вопрос:

Недавно я создал свой первый пакет под названием pycohort: https://pypi.org/project/pycohort/

Здесь есть существующие функции python, которые работают без каких-либо проблем. Фрагмент кода выглядит следующим образом:

 # packages needed
import pandas as pd
import numpy as np

def calculate_mean(some_list):

    """Function to calculate the mean of the data set.
    Returns: 
        float: mean of the data set
    """

    return (1.0 * sum(some_list) / len(some_list))
 

Сначала я pip install pycohort , а потом import pycohort . Когда я вызываю вышеупомянутую функцию , например pycohort.calculate_mean(df.col1) , я получаю сообщение об ошибке: AttributeError: module 'pycohort' has no attribute 'calculate_mean' .

При загрузке функции я перешел в свой текущий рабочий каталог, а затем ввел приведенный ниже код. Но я не подозреваю, что здесь есть проблема, так как я смог успешно загрузить и установить pip.

 python setup.py sdist
pip install twine
twine upload dist/*
 

Что я упускаю из виду при загрузке или вызове функции?

Спасибо за помощь,

Комментарии:

1. Вы загрузили сломанный пакет: файл pycohort/__init__.py в пакете имеет нулевую длину. Из него ничего нельзя импортировать. Исправьте процесс упаковки, увеличьте версию и загрузите новый дистрибутив. Используйте TestPyPI для загрузки тестовых пакетов.

2. Спасибо, что посмотрели на это. Как я должен заполнить файл инициализации? Простого добавления import pycohort будет достаточно?

3. Вам необходимо указать в своем коде некоторый код pycohort/__init__.py , реализующий функции для импорта другого кода.

4. Тогда init файл должен включать from pycohort import <function_name> в себя все функции?

5. pycohort/__init__.py должны включать в себя сами функции. Откуда вы собираетесь их импортировать? from pycohort import импорт из pycohort.py или из pycohort/__init__.py .