[PYTHON] J'ai essayé de publier mon propre module pour pouvoir l'installer

emballer

Module fait maison

pip install my_awesome_module

Pour le publier afin qu'il puisse être publié, vous pouvez le publier sur GitHub avec setup.py

GitHub page: https://github.com/kyohashi/model_selection

Qu'est-ce que pip install en premier lieu?

Je recherche un module dans PyPI (Python Package Index). Par exemple, si vous accédez à PyPI.org et recherchez numpy, ↓ https://pypi.org/

Certes, il est engourdi. ↓ https://pypi.org/search/?q=numpy

Lors de l'enregistrement d'un module dans PyPI, vous aurez besoin de setup.py, qui représente les méta-informations du module, ainsi que le code source du module. Pour résumer ce qui précède,

  1. pip install hogehoge
  2. Accédez à PyPI et recherchez name = hogehoge
  3. Reconnaître et installer setup.py associé à hogehoge comme module de chargement

Vous pouvez comprendre que vous suivez la procédure.

Comment publier votre propre module

Il s'avère que vous pouvez pip installer en vous inscrivant auprès de PyPI, mais vous pouvez également le publier sur GitHub. Le fait est que vous n'avez qu'à me dire le code source et l'emplacement de setup.py, donc après vous être enregistré sur GitHub

pip install git+(URL)

Tout le monde peut l'installer. Cette fois, j'ai essayé de publier sur GitHub au lieu de PyPI.

Les fichiers enregistrés dans GitHub et setup.py sont les suivants.

organisation des fichiers


.
├── README.md
├── requirements.txt
├── setup.py
└── src
    └── model_selection
        ├── __init__.py
        ├── bayes_clustering.py
        └── utils
            ├── __init__.py
            └── check_datashape.py
    

setup.py


from glob import glob
from os.path import basename
from os.path import splitext

from setuptools import setup
from setuptools import find_packages


def _requires_from_file(filename):
    return open(filename).read().splitlines()


setup(
    name="model_selection",
    version="0.1.0",
    description="statistical model selection with Bayesian IC like WAIC",
    author="kyohashi",
    url="https://github.com/kyohashi/model_selection.git",
    packages=find_packages("src"),
    package_dir={"": "src"},
    py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')],
    include_package_data=True,
    zip_safe=False,
    install_requires=_requires_from_file('requirements.txt')
)

Si vous regardez setup.py, vous pouvez voir qu'il reconnaît le fichier python sous le dossier src comme un module. Si vous enregistrez ce qui précède, tout ira bien

pip install git+https://github.com/kyohashi/model_selection.git

Est possible.

Contenu du module autodidacte publié

Le module créé cette fois a pour objectif d'aider à déterminer le nombre de clusters. Plus précisément, comme le montre la figure ci-dessous, le nombre optimal de clusters est estimé en modélisant et en calculant WAIC avec GMM pour tous les nombres de clusters candidats. PyMC3 est utilisé pour l'échantillonnage MCMC.

Untitled Diagram.png

Il existe également un exemple de mise en œuvre pour Toy Data, veuillez donc vous y référer également. Usecase: https://kyohashi.github.io/model_selection/gmm_usecase.html

Recommended Posts

J'ai essayé de publier mon propre module pour pouvoir l'installer
J'ai essayé de l'étendre pour que la base de données puisse être utilisée avec le logiciel d'analyse de Wiire
[J'ai essayé d'utiliser Pythonista 3] Importation de mon propre module
J'ai essayé d'approfondir ma compréhension en créant mon propre discriminateur qui peut classer les valeurs binaires à l'aide de la régression logistique.
J'ai essayé de gratter YouTube, mais je peux utiliser l'API, alors ne le faites pas.
J'ai créé mon propre middleware Django afin de pouvoir accéder aux informations de demande de n'importe où
J'ai essayé de créer OneHotEncoder, qui est souvent utilisé pour l'analyse des données, afin qu'il puisse atteindre l'endroit qui démange.
J'ai trébuché lorsque j'ai essayé d'installer Basemap, donc un mémorandum
[Python] J'ai créé ma propre bibliothèque qui peut être importée dynamiquement
J'ai essayé Python! ] Puis-je publier sur Kaggle sur iPad Pro?
Début de PyPi J'ai essayé de rendre possible l'installation d'une bibliothèque pour vérifier les vacances japonaises
J'étais accro à pip installer mysqlclient
J'ai essayé d'améliorer la précision de mon propre réseau neuronal
J'ai eu une erreur liée à SSL avec l'installation de pip, donc je l'ai résolue.
Je veux installer Python avec PythonAnywhere
J'ai essayé d'installer Docker sur Windows10 Home mais cela n'a pas fonctionné
J'ai fait de mon mieux pour retourner au Lasso
[Ansible] Je souhaite appeler ma propre fonction à partir du module de modèle (macro)
J'ai essayé de rendre mon propre code source compatible avec Chainer v2 alpha
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
J'ai essayé d'utiliser la bibliothèque Python "pykakasi" qui peut convertir des kanji en romaji.
Notez la solution car django n'a pas pu s'installer avec pip
[Je suis un débutant en informatique] J'ai fait de mon mieux pour implémenter Linux sur Windows
Je n'ai pas compris le redimensionnement de TensorFlow, alors je l'ai résumé visuellement.
J'ai fait de mon mieux pour créer une fonction d'optimisation, mais cela n'a pas fonctionné.
[Mémo personnel] L'installation de Pip échoue, résolvez-le
Étapes pour installer votre propre bibliothèque avec pip
[Rails] v1.0 est sorti sur google-cloud-vision de gem, j'ai donc essayé de le soutenir
J'ai essayé de faire une application mémo qui peut être pomodoro, mais un enregistrement de réflexion
Les débutants en Python ont créé un chat BOT alors j'ai essayé de résumer comment le faire
C'est le jour du chat, alors j'ai essayé de créer quelque chose qui se traduise par des mots semblables à ceux d'un chat.
Je me suis rendu compte qu'il était absurde de l'utiliser sans réfléchir car le module est pratique
J'ai eu une erreur lorsque j'installe des pandas sur Mac, alors je l'ai traitée
Je voulais utiliser la feuille de calcul Google avec AWS lambda, alors je l'ai essayé [Partie 2]
J'ai essayé d'apprendre mon propre ensemble de données en utilisant Chainer Trainer
AWS Lambda prend désormais en charge Python, je l'ai donc essayé
J'ai essayé d'installer scrapy sur Anaconda et je n'ai pas pu
J'ai eu une erreur lorsque j'ai installé tweepy sur macOS Sierra, alors je l'ai résolue.
J'ai créé un outil qui facilite un peu la création et l'installation d'une clé publique.
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
Installez Mecab et CaboCha sur ubuntu16.04LTS afin qu'il puisse être utilisé à partir de la série python3
Depuis qu'il y avait Doppelgenger, j'ai essayé de le distinguer avec l'intelligence artificielle (rires) (Partie 1)
Comment installer pip
J'ai essayé de déboguer.
Jusqu'à ce que vous puissiez installer votre propre bibliothèque Python avec pip
J'ai essayé de publier ma propre bibliothèque de baseball Python sur Packaging & PyPI
Ubuntu a explosé lorsque j'ai essayé de changer mon nom d'utilisateur
Le livre de PyTorch était difficile à comprendre, alors je l'ai complété
[Flask] J'ai essayé de résumer la "configuration docker-compose" qui peut être créée rapidement pour les applications Web
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
J'ai créé mon propre réseau de neurones à propagation directe à 3 couches et j'ai essayé de comprendre le calcul en profondeur.
[Diplômé de l'encombrement d'articles] J'ai essayé de développer un service qui peut répertorier les articles par objectif
On m'a dit que je ne pouvais pas trouver XML_SetHashSalt lorsque j'ai essayé d'utiliser pip avec python.
J'ai essayé de faire mon propre BOT lycéenne avec le style Rinna avec LINE BOT (Python & Heroku)
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python