Veröffentlichen Sie Ihre eigene Python-Bibliothek auf Homebrew

Aus irgendeinem Grund

** Bei Installation mit Pip **

$ pyenv install 3.9.0
$ pyenv virtualenv 3.9.0 venv4myapp
$ pyenv activate venv4myapp
(venv4myapp) $ pip install myapp
(venv4myapp) $ myapp --option veryBadMan
(venv4myapp) $ deactivate

** Bei der Installation mit Homebrew **

$ brew tap SoHappyMan/myapp
$ brew install myapp
$ myapp --option veryHappyHeyMaaaaaan

So veröffentlichen Sie die Python-Bibliothek in Homebrew, wenn abhängige Bibliotheken vorhanden sind. Link-Sammlung.

Um mit Homebrew zu installieren, müssen Sie ein Ruby-Skript namens Formula schreiben, das die "Installationsverfahren" beschreibt. Grundsätzlich müssen Sie die abhängigen Bibliotheken darin installieren.

Bei Verwendung von Pyinstaller

Die abhängige Bibliotheksinstallation von Homebrew ist problematisch. Machen wir es also zu einer einzigen Datei. Es war einfach, aber es war spät. Damit müssen keine abhängigen Bibliotheken installiert werden. Dieser Artikel ist detailliert.

Machen Sie selbst erstellte Python-Tools mit Homebrew installierbar

Die Formel sieht so aus.

class Mlkokuji < Formula
  desc "Befehlszeilenskript zum Suchen und Anzeigen von Benachrichtigungen von der Website des Außenministeriums ⛱⛱⛱"
  homepage "https://github.com/ryuhey0123/mlit-kokuji"
  url "https://github.com/ryuhey0123/mlit-kokuji/releases/download/v1.1/mlkokuji-v1.1.tar.gz"
  sha256 "78380cc079a812cd359dbfb27b7af40f15792d27b090858df21a71d95d9a09dd"
  license "MIT"

  def install
    bin.install 'mlkokuji'
  end

end

So was. Im obigen Beispiel würden Sie eine einzelne Datei mit dem Namen "mlkokuji" erstellen und in "bin" installieren.

Installieren Sie abhängige Bibliotheken in einer virtuellen Umgebung für Homebrew

Ich habe mich gefragt, warum Python mit Homebrew funktioniert und wo die abhängigen Bibliotheken installiert sind, aber Homebrew scheint eine eigene virtuelle Umgebung zu haben und die abhängigen Bibliotheken dort zu installieren. Dieser Artikel ist detailliert.

Seien Sie vorsichtig beim Erstellen einer Formel für Python-Apps mit Homebrew

Die Formel sieht so aus.

class Pdf2doc < Formula
  include Language::Python::Virtualenv

  desc "Add page number to some PDF files and merge it → PERFECT DOCUMENT! ⭐️"
  homepage "https://github.com/ryuhey0123/pdf2doc"
  url "https://github.com/ryuhey0123/pdf2doc/archive/v1.2.0.tar.gz"
  sha256 "6dc9f92b1a0b43d05957d8a8b6c59d52d22808029c826cf60ace20e06d991d52"
  license "MIT"

  depends_on "[email protected]"

  resource "click" do
    url "https://files.pythonhosted.org/packages/27/6f/be940c8b1f1d69daceeb0032fee6c34d7bd70e3e649ccac0951500b4720e/click-7.1.2.tar.gz"
    sha256 "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"
  end

  resource "crayons" do
    url "https://files.pythonhosted.org/packages/b8/6b/12a1dea724c82f1c19f410365d3e25356625b48e8009a7c3c9ec4c42488d/crayons-0.4.0.tar.gz"
    sha256 "bd33b7547800f2cfbd26b38431f9e64b487a7de74a947b0fafc89b45a601813f"
  end

  resource "colorama" do
    url "https://files.pythonhosted.org/packages/1f/bb/5d3246097ab77fa083a61bd8d3d527b7ae063c7d8e8671b1cf8c4ec10cbe/colorama-0.4.4.tar.gz"
    sha256 "5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"
  end

  resource "fpdf" do
    url "https://files.pythonhosted.org/packages/37/c6/608a9e6c172bf9124aa687ec8b9f0e8e5d697d59a5f4fad0e2d5ec2a7556/fpdf-1.7.2.tar.gz"
    sha256 "125840783289e7d12552b1e86ab692c37322e7a65b96a99e0ea86cca041b6779"
  end

  resource "PyPDF2" do
    url "https://files.pythonhosted.org/packages/b4/01/68fcc0d43daf4c6bdbc6b33cc3f77bda531c86b174cac56ef0ffdb96faab/PyPDF2-1.26.0.tar.gz"
    sha256 "e28f902f2f0a1603ea95ebe21dff311ef09be3d0f0ef29a3e44a932729564385"
  end

  resource "Send2Trash" do
    url "https://files.pythonhosted.org/packages/13/2e/ea40de0304bb1dc4eb309de90aeec39871b9b7c4bd30f1a3cdcb3496f5c0/Send2Trash-1.5.0.tar.gz"
    sha256 "60001cc07d707fe247c94f74ca6ac0d3255aabcb930529690897ca2a39db28b2"
  end

  resource "yaspin" do
    url "https://files.pythonhosted.org/packages/f8/6d/7d5d081db3f399f5e345ad5107fa015f84a0c0dd62f1c9deb277ba83774e/yaspin-1.2.0.tar.gz"
    sha256 "72e9cdbc0e797ef886c373fef2bcd6526a704a470696f9d78d0bb27951fe659a"
  end

  def install
    virtualenv_install_with_resources
  end

end

Als Einschränkung werden ** abhängige Bibliotheken nicht automatisch installiert **, daher müssen Sie sie hier schreiben. Im obigen Beispiel hängt die Bibliothek "Buntstifte", die die CLI-Ausgabe färbt, von einer Bibliothek namens "colorama" ab. pip install wird in diesem Bereich gute Arbeit leisten, aber dies ist manuell.

virtualenv_install_with_resources enthält eine Funktion, die setup.py sucht und ausführt. Sie benötigen also ** setup.py, auch wenn Sie es nicht auf pypi veröffentlichen! !! ** ** **

Betten Sie zunächst andere Bibliotheken in die Bibliothek ein

Ich habe dies bemerkt, als ich mir das pipenv Repository angesehen habe. Die Formel war einfach, obwohl es einige abhängige Pakete geben sollte. Ist eine versionierungsunabhängige Bibliothek in das Repository integriert?

Github: pipenv/pipenv/vendor/

Impressionen

Ich frage mich, ob es jemanden gibt, der das automatisch von PipFile aus macht ~ ~ Pipenv ist das Beste ~~

Recommended Posts

Veröffentlichen Sie Ihre eigene Python-Bibliothek auf Homebrew
Bis Sie Ihre eigene Python-Bibliothek mit pip installieren können
Führen Sie die Intelligenz Ihrer eigenen Python-Bibliothek mit VScode aus.
[Stärkung des Lernens] DQN mit Ihrer eigenen Bibliothek
[Python] Registrieren Sie Ihre eigene Bibliothek in PyPI
Bis Sie Ihre eigene Python-Bibliothek installieren
Erstellen Sie schnell Ihr eigenes Modul mit setuptools (Python)
Schritte zum Installieren Ihrer eigenen Bibliothek mit pip
Memo zum Erstellen einer eigenen Box mit Peppers Python
Rufen Sie mit Go mit cgo Ihre eigene C-Sprachbibliothek auf
Versuchen Sie, Ihre eigenen Objekte mit Prioritätswarteschlangen in Python zu sortieren
[Python] Erstelle deinen eigenen LINE-Bot
[Python] Anmelden Ihres eigenen Moduls
Richten Sie mit Homebrew eine moderne Python-Umgebung ein
Ich habe meine eigene Python-Bibliothek erstellt
Löse dein eigenes Labyrinth mit Q-Lernen
[HyperledgerIroha] Abfrage mit Python-Bibliothek
Verwalten Sie jede Python-Version mit Homebrew
Trainiere UGATIT mit deinem eigenen Datensatz
Löse dein eigenes Labyrinth mit DQN
Rufen Sie mit ctypes Ihre eigene gemeinsam genutzte Bibliothek in C-Sprache von Python aus auf
Ihr eigener Twitter-Client mit Django
Erstellen Sie Ihre eigenen Linux-Befehle in Python
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
[LLDB] Erstellen Sie Ihren eigenen Befehl mit Python
Verwenden Sie einfach Ihre eigenen Funktionen in Python
Erstellen Sie mit Twisted Ihren eigenen DNS-Server
[Python] Packen und verteilen Sie Ihre eigenen Module
Erstellen Sie mit SQLAlchemy Ihren eigenen zusammengesetzten Wert
HTML-Dokument Python-Programme mit Sphinx
Verwenden Sie die Verschlüsselung der Verschlüsselungsbibliothek mit dem Python-Image von Docker
So importieren Sie Ihr eigenes Modul mit jupyter
Veröffentlichen Sie Ihre Website mit Responder + Gunicorn + Apache
Holen Sie sich Ihre eigene IP-Adresse in Python
Erstellen Sie mit Python + OpenCV Ihre eigene virtuelle Kamera und wenden Sie Originaleffekte an
Python 3.6 E-Mail-Bibliothek
Versuchen Sie, Ihr eigenes AWS-SDK mit bash zu erstellen
[Persönliches Memo] julia - Verwenden Sie die Python-Bibliothek mit julia unter Verwendung von PyCall
FizzBuzz in Python3
Scraping mit Python
Zusammenfassung des Bibliotheksvergleichs zum Generieren von PDF mit Python
[Python] Implementieren Sie Ihre eigene listenähnliche Klasse mit collection.UserList
Python ast Bibliothek
Statistik mit Python
Linux C / C ++ Erstellen Sie Ihre eigene Bibliothekserstellungsumgebung
Erstellen eines Hintergrundbilds mit Tupfen mit der Python-Bildbibliothek
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Ich wollte Python 3.4.3 mit Homebrew + pyenv installieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
Verwalten Sie AWS mit der Python-Bibliothek Boto
mit Syntax (Python)
Python Library Hinweis
Importieren Sie Ihre eigenen Module mit der Python-Entwicklung von Grasshopper
Zundokokiyoshi mit Python