#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
.