Publiez votre propre bibliothèque Python sur Homebrew

Pour certaines raisons

** Lors de l'installation avec 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

** Lors de l'installation avec Homebrew **

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

Comment publier une bibliothèque Python dans Homebrew lorsqu'il existe une bibliothèque dépendante. Lien Collection.

Pour installer avec Homebrew, vous devez écrire un script Ruby appelé Formula qui décrit les «procédures d'installation». Fondamentalement, vous devez y installer les bibliothèques dépendantes.

Lors de l'utilisation de Pyinstaller

L'installation de la bibliothèque dépendante de Homebrew est gênante en l'état, alors faisons-en un seul fichier. C'était facile, mais il était tard. Avec cela, il n'est pas nécessaire d'installer des bibliothèques dépendantes. Cet article est détaillé.

Rendre les outils personnalisés Python installables avec Homebrew

La formule ressemble à ceci.

class Mlkokuji < Formula
  desc "Script de ligne de commande pour rechercher et afficher les notifications sur le site Web du ministère des Affaires étrangères ⛱⛱⛱"
  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

Comme ça. Dans l'exemple ci-dessus, vous créeriez un seul fichier appelé mlkokuji et l'installeriez dans bin.

Installer des bibliothèques dépendantes dans un environnement virtuel pour Homebrew

Je me demandais pourquoi Python fonctionne avec Homebrew et où les bibliothèques dépendantes sont installées, mais Homebrew semble avoir son propre environnement virtuel et il semble y installer les bibliothèques dépendantes. Cet article est détaillé.

Soyez prudent lorsque vous créez une formule pour les applications Python avec Homebrew

La formule ressemble à ceci.

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

Attention, les ** bibliothèques dépendantes ne sont pas installées automatiquement **, vous devez donc les écrire ici. Dans l'exemple ci-dessus, la bibliothèque crayons qui colore la sortie CLI dépend d'une bibliothèque appelée colorama. pip install fera du bon travail dans ce domaine, mais c'est manuel.

virtualenv_install_with_resources contient une fonction qui recherche et exécute setup.py, donc vous avez besoin de ** setup.py même si vous ne le publiez pas sur pypi! !! ** **

Intégrez d'autres bibliothèques dans la bibliothèque en premier lieu

J'ai remarqué cela en regardant le dépôt pipenv. La formule était simple, bien qu'il devrait y avoir des packages dépendants. Une bibliothèque indépendante de la version est-elle intégrée au référentiel?

Github: pipenv/pipenv/vendor/

Impressions

Je me demande s'il y a un gars qui le fera automatiquement à partir de PipFile ~ ~ Pipenv est le meilleur ~~

Recommended Posts

Publiez votre propre bibliothèque Python sur Homebrew
Jusqu'à ce que vous puissiez installer votre propre bibliothèque Python avec pip
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
[Renforcer l'apprentissage] DQN avec votre propre bibliothèque
[Python] Enregistrez votre propre bibliothèque dans PyPI
Jusqu'à ce que vous installiez votre propre bibliothèque Python
Créez rapidement votre propre module avec setuptools (python)
Étapes pour installer votre propre bibliothèque avec pip
Mémo pour créer votre propre Box avec le Python de Pepper
Appelez votre propre bibliothèque de langage C avec Go en utilisant cgo
Essayez de trier vos propres objets avec des files d'attente prioritaires en Python
[Python] Créez votre propre bot LINE
[Python] journalisation dans votre propre module
Configurer un environnement Python moderne avec Homebrew
J'ai créé ma propre bibliothèque Python
Résolvez votre propre labyrinthe avec Q Learning
[HyperledgerIroha] Requête avec la bibliothèque Python
Gérez chaque version de Python avec Homebrew
Entraînez UGATIT avec votre propre jeu de données
Résolvez votre propre labyrinthe avec DQN
Appelez votre propre bibliothèque partagée en langage C à partir de Python à l'aide de ctypes
Votre propre client Twitter réalisé avec Django
Créez vos propres commandes Linux en Python
Créez wordcloud à partir de votre tweet avec python3
[LLDB] Créez votre propre commande avec Python
Utilisez facilement vos propres fonctions en Python
Créez votre propre serveur DNS avec Twisted
[Python] Empaquetez et distribuez vos propres modules
Créez votre propre valeur composite avec SQLAlchemy
Programmes Python de document HTML avec Sphinx
Utiliser le chiffrement de la bibliothèque de chiffrement avec l'image Python de Docker
Pour importer votre propre module avec jupyter
Publiez votre site Web avec responder + Gunicorn + Apache
Obtenez votre propre adresse IP en Python
Créez votre propre caméra virtuelle avec Python + OpenCV et appliquez des effets originaux
Bibliothèque de messagerie Python 3.6
Essayez de créer votre propre AWS-SDK avec bash
[Personal memo] julia --Utiliser la bibliothèque Python avec Julia en utilisant PyCall
FizzBuzz en Python3
Grattage avec Python
Résumé de la comparaison des bibliothèques pour générer des PDF avec Python
[Python] Implémentez votre propre classe de type liste à l'aide de collections.UserList
Bibliothèque Python AST
Statistiques avec python
Linux C / C ++ Créez votre propre environnement de création de bibliothèque
Créer un papier peint à pois avec la bibliothèque d'images Python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Je voulais installer Python 3.4.3 avec Homebrew + pyenv
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
Gérez bien AWS avec la bibliothèque Python Boto
avec syntaxe (Python)
Note sur la bibliothèque Python
Importez vos propres modules avec le développement Python de Grasshopper
Zundokokiyoshi avec python