** 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.
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
.
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! !! ** **
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/
Je me demande s'il y a un gars qui le fera automatiquement à partir de PipFile ~ ~ Pipenv est le meilleur ~~
Recommended Posts