[PYTHON] Ich habe versucht, mein eigenes Modul zu veröffentlichen, damit ich es per Pip installieren kann

einpacken

Selbstgemachtes Modul

pip install my_awesome_module

Um es zu veröffentlichen, damit es veröffentlicht werden kann, ist es in Ordnung, es zusammen mit setup.py auf GitHub zu veröffentlichen

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

Was ist Pip Install überhaupt?

Ich suche ein Modul in PyPI (Python Package Index, PyPI). Wenn Sie beispielsweise auf PyPI.org zugreifen und nach numpy suchen, ↓ https://pypi.org/

Sicher gibt es numpy. ↓ https://pypi.org/search/?q=numpy

Wenn Sie ein Modul in PyPI registrieren, benötigen Sie setup.py, das die Metainformationen des Moduls zusammen mit dem Quellcode des Moduls darstellt. Um das Obige zusammenzufassen,

  1. pip install hogehoge
  2. Gehen Sie zu PyPI und suchen Sie nach name = hogehoge
  3. Erkennen und installieren Sie die mit hogehoge verknüpfte Datei "setup.py" als Lademodul

Sie können verstehen, dass Sie das Verfahren befolgen.

So veröffentlichen Sie Ihr eigenes Modul

Es stellt sich heraus, dass Sie durch Installation bei PyPI eine Pip-Installation durchführen können, diese aber auch auf GitHub veröffentlichen können. Der Punkt ist, dass Sie mir nur den Quellcode und den Speicherort von setup.py mitteilen müssen, also nach der Registrierung bei GitHub

pip install git+(URL)

Jeder kann es installieren. Diesmal habe ich versucht, auf GitHub anstelle von PyPI zu veröffentlichen.

Die in GitHub und setup.py registrierten Dateien lauten wie folgt.

Dateiorganisation


.
├── 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')
)

Wenn Sie sich setup.py ansehen, können Sie sehen, dass die Python-Datei unter dem Ordner src als Modul erkannt wird. Wenn Sie das oben genannte registrieren, ist es in Ordnung

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

Ist möglich.

Inhalt des veröffentlichten selbst erstellten Moduls

Das diesmal erstellte Modul soll dabei helfen, die Anzahl der Cluster zu bestimmen. Insbesondere wird, wie in der folgenden Abbildung gezeigt, die optimale Anzahl von Clustern geschätzt, indem WAIC mit GMM für alle möglichen Clusternummern modelliert und berechnet wird. PyMC3 wird für die MCMC-Abtastung verwendet.

Untitled Diagram.png

Es gibt auch ein Implementierungsbeispiel für Toy Data. Lesen Sie daher auch dieses. Usecase: https://kyohashi.github.io/model_selection/gmm_usecase.html

Recommended Posts

Ich habe versucht, mein eigenes Modul zu veröffentlichen, damit ich es per Pip installieren kann
Ich habe versucht, es zu erweitern, damit die Datenbank mit der Analysesoftware von Wiire verwendet werden kann
[Ich habe versucht, Pythonista 3 zu verwenden] Importieren meines eigenen Moduls
Ich habe versucht, mein Verständnis zu vertiefen, indem ich einen eigenen Diskriminator erstellt habe, der Binärwerte mithilfe logistischer Regression klassifizieren kann.
Ich habe versucht, YouTube zu kratzen, aber ich kann die API verwenden, also tu es nicht.
Ich habe meine eigene Django Middleware erstellt, damit ich von überall auf Anforderungsinformationen zugreifen kann
Ich habe versucht, OneHotEncoder zu erstellen, der häufig für die Datenanalyse verwendet wird, damit er den juckenden Ort erreicht.
Ich bin gestolpert, als ich versucht habe, Basemap zu installieren, also ein Memorandum
[Python] Ich habe meine eigene Bibliothek erstellt, die dynamisch importiert werden kann
Ich habe Python ausprobiert! ] Kann ich auf iPad Pro auf Kaggle posten?
PyPi-Debüt Ich habe versucht, eine Pip-Installation zu ermöglichen, um japanische Feiertage zu überprüfen
Ich war süchtig danach, mysqlclient zu installieren
Ich habe versucht, die Genauigkeit meines eigenen neuronalen Netzwerks zu verbessern
Ich habe einen SSL-bezogenen Fehler bei der Pip-Installation erhalten und ihn behoben.
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
Ich habe versucht, Docker unter Windows 10 Home zu installieren, aber es hat nicht funktioniert
Ich versuchte mein Bestes, um zu Lasso zurückzukehren
[Ansible] Ich möchte meine eigene Funktion über das Vorlagenmodul (Makro) aufrufen.
Ich habe versucht, meinen eigenen Quellcode mit Chainer v2 alpha kompatibel zu machen
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
Ich habe versucht, die Python-Bibliothek "pykakasi" zu verwenden, die Kanji in Romaji konvertieren kann.
Beachten Sie die Lösung, da Django nicht mit pip installiert werden konnte
[Ich bin ein IT-Anfänger] Ich habe mein Bestes versucht, Linux unter Windows zu implementieren
Ich habe die Größenänderung von TensorFlow nicht verstanden und sie daher visuell zusammengefasst.
Ich habe mein Bestes versucht, um eine Optimierungsfunktion zu erstellen, aber es hat nicht funktioniert.
[Persönliches Memo] Die Pip-Installation schlägt fehl. Lösen Sie sie daher
Schritte zum Installieren Ihrer eigenen Bibliothek mit pip
[Rails] v1.0 kam auf Google-Cloud-Vision von Gem heraus, also habe ich versucht, es zu unterstützen
Ich habe versucht, eine Memo-App zu erstellen, die Pomodoro sein kann, aber eine Reflexionsaufzeichnung
Python-Anfänger haben einen Chat-BOT erstellt, also habe ich versucht, zusammenzufassen, wie man es macht
Es ist Katzentag, also habe ich versucht, etwas zu machen, das sich in katzenähnliche Wörter übersetzt.
Mir wurde klar, dass es Unsinn ist, es ohne nachzudenken zu verwenden, weil das Modul praktisch ist
Ich habe eine Fehlermeldung erhalten, als ich Pandas auf einem Mac installiert habe, also habe ich mich damit befasst
Ich wollte die Google-Tabelle mit AWS Lambda betreiben, also habe ich es versucht [Teil 2]
Ich habe versucht, meinen eigenen Datensatz mit Chainer Trainer zu lernen
AWS Lambda unterstützt jetzt Python, also habe ich es versucht
Ich habe versucht, Scrapy auf Anaconda zu installieren und konnte es nicht
Ich habe eine Fehlermeldung erhalten, als ich tweepy unter macOS Sierra installiert habe, also habe ich mich damit befasst.
Ich habe ein Tool erstellt, mit dem das Erstellen und Installieren eines öffentlichen Schlüssels etwas einfacher ist.
Als ich versuchte, PIL und matplotlib in einer virtuellen Umgebung zu installieren, war ich süchtig danach.
Installieren Sie Mecab und CaboCha auf ubuntu16.04LTS, damit es aus der Python3-Serie verwendet werden kann
Da es Doppelgenger gab, habe ich versucht, es mit künstlicher Intelligenz zu unterscheiden (lacht) (Teil 1)
So installieren Sie pip
Ich habe versucht zu debuggen.
Bis Sie Ihre eigene Python-Bibliothek mit pip installieren können
Ich habe versucht, meine eigene Python-Baseballbibliothek bei Packaging & PyPI zu veröffentlichen
Ubuntu explodierte, als ich versuchte, meinen Benutzernamen zu ändern
PyTorchs Buch war schwer zu verstehen, deshalb habe ich es ergänzt
[Flask] Ich habe versucht, die "Docker-Compose-Konfiguration" zusammenzufassen, die schnell für Webanwendungen erstellt werden kann
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
Ich habe mein eigenes neuronales 3-Layer-Forward-Propagation-Netzwerk erstellt und versucht, die Berechnung genau zu verstehen.
Ich habe versucht, einen Dienst zu entwickeln, der Artikel nach Zweck auflisten kann
Mir wurde gesagt, dass ich XML_SetHashSalt nicht finden konnte, als ich versuchte, pip mit Python zu verwenden.
Ich habe versucht, mein eigenes High-School-Mädchen BOT im Rinna-Stil mit LINE BOT (Python & Heroku) zu machen.
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden