[PYTHON] Makefile minimal et buildout.cfg pour créer un environnement avec buildout

L'un des outils pour créer un environnement de jardin miniature Python est la construction. J'ai écrit un Makefile pour créer un environnement de buildout

Au début...

On suppose que Python et virtualenv sont déjà disponibles.

Opération attendue

Les commandes attendues sont:

make build
Créez un environnement de construction.
make clean
Supprimez l'environnement de construction.
make rebuild
Recréez l'environnement de construction.

make fait construire.

Makefile et buildout.cfg

Makefile

J'utilise souvent Makefile lors de l'exécution de buildout. L'exemple suivant décrit les opérations minimales requises.

Makefile


# -*- coding: utf-8 -*-
# Need virtualenv
.PHONY: all clean build rebuild

all: env bin/buildout build
	echo "buildout finished..."

clean:
	rm -rf bin parts eggs develop-eggs .installed env bootstrap.py

build: bin/buildout
	bin/buildout -c buildout.cfg

rebuild: clean build
	echo

bin/buildout: env
	curl https://raw.githubusercontent.com/buildout/buildout/master/bootstrap/bootstrap.py | env/bin/python

env:
	virtualenv --no-site-packages env
	env/bin/pip install -U setuptools

buildout.cfg Vous avez besoin du fichier de configuration buyout.cfg pour la construction. Ce paramètre ne fait rien.

buildout.cfg


[buildout]
parts =

Essayez de bouger

Constitution

Le fichier contient le Makefile et buildout.cfg ci-dessus dans le même répertoire.

(py3k)$ ls
Makefile	buildout.cfg

Créer un environnement

Créons un make build.

(py3k)$ make build
virtualenv --no-site-packages env
Using real prefix '/home/examples/.anyenv/envs/pyenv/versions/3.4.2'
New python executable in env/bin/python3.4
Also creating executable in env/bin/python
Installing setuptools, pip...done.
env/bin/pip install -U setuptools
You are using pip version 6.0.3, however version 6.0.6 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
DEPRECATION: --download-cache has been deprecated and will be removed in the future. Pip now automatically uses and configures its cache.
Collecting setuptools from https://pypi.python.org/packages/3.4/s/setuptools/setuptools-11.3.1-py2.py3-none-any.whl#md5=59cd761f2f2b926313bed7f83337e4d7
  Downloading setuptools-11.3.1-py2.py3-none-any.whl (500kB)
    100% |################################| 503kB 7.3MB/s 
Installing collected packages: setuptools
  Found existing installation: setuptools 8.2.1
    Uninstalling setuptools-8.2.1:
      Successfully uninstalled setuptools-8.2.1

Successfully installed setuptools-11.3.1
curl https://raw.githubusercontent.com/buildout/buildout/master/bootstrap/bootstrap.py > bootstrap.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6501  100  6501    0     0  17982      0 --:--:-- --:--:-- --:--:-- 18008
env/bin/python bootstrap.py
Creating directory '/home/examples/ng/var/src/develop/examples/buildout/simple/bin'.
Creating directory '/home/examples/ng/var/src/develop/examples/buildout/simple/parts'.
Creating directory '/home/examples/ng/var/src/develop/examples/buildout/simple/eggs'.
Creating directory '/home/examples/ng/var/src/develop/examples/buildout/simple/develop-eggs'.
Generated script '/home/examples/ng/var/src/develop/examples/buildout/simple/bin/buildout'.
bin/buildout -c buildout.cfg
(py3k)$    

Vérifions dans le répertoire de travail.

(py3k)$ ls
Makefile	bin		buildout.cfg	develop-eggs	eggs		env		parts
Makefile
Makefile pour manipuler le buildout. Je l'ai créé moi-même plus tôt.
bin
Il s'agit du répertoire dans lequel les commandes installées dans l'environnement de construction sont installées. Créé lorsque vous construisez build.
buildout.cfg
Ceci est un fichier de configuration pour la construction. Ce fichier de configuration est utilisé lorsque make build est terminé.
develop-eggs
Le répertoire dans lequel votre package en cours de développement sera installé. Puisqu'il est installé dans le même état qu'il a été mis avec pip -e, Un lien pour le package Python sera créé dans ce répertoire.
eggs
Le répertoire dans lequel les packages sont installés.
parts
Les fichiers qui deviennent des composants tels que les paramètres de package et les outils sont placés.

Supprimer l'environnement

(py3k)$ make clean
rm -rf bin parts eggs develop-eggs .installed env bootstrap.py

Confirmez que vous l'avez supprimé.

(py3k)$ ls
Makefile	buildout.cfg

À ce moment, l'environnement créé par virualenv est également utilisé. C'est déjà enraciné.

Supprimer et créer l'environnement

Maintenant, exécutons build rebuild.


(py3k)$ make rebuild
rm -rf bin parts eggs develop-eggs .installed env bootstrap.py
virtualenv --no-site-packages env
Using real prefix '/home/examples/.anyenv/envs/pyenv/versions/3.4.2'
New python executable in env/bin/python3.4
Also creating executable in env/bin/python
Installing setuptools, pip...done.
env/bin/pip install -U setuptools
You are using pip version 6.0.3, however version 6.0.6 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
DEPRECATION: --download-cache has been deprecated and will be removed in the future. Pip now automatically uses and configures its cache.
Collecting setuptools from https://pypi.python.org/packages/3.4/s/setuptools/setuptools-11.3.1-py2.py3-none-any.whl#md5=59cd761f2f2b926313bed7f83337e4d7
  Downloading setuptools-11.3.1-py2.py3-none-any.whl (500kB)
    100% |################################| 503kB 3.4MB/s 
Installing collected packages: setuptools
  Found existing installation: setuptools 8.2.1
    Uninstalling setuptools-8.2.1:
      Successfully uninstalled setuptools-8.2.1

Successfully installed setuptools-11.3.1
curl https://raw.githubusercontent.com/buildout/buildout/master/bootstrap/bootstrap.py > bootstrap.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6501  100  6501    0     0  16741      0 --:--:-- --:--:-- --:--:-- 16755
env/bin/python bootstrap.py
Creating directory '/home/examples/ng/var/src/develop/examples/buildout/simple/bin'.
Creating directory '/home/examples/ng/var/src/develop/examples/buildout/simple/parts'.
Creating directory '/home/examples/ng/var/src/develop/examples/buildout/simple/eggs'.
Creating directory '/home/examples/ng/var/src/develop/examples/buildout/simple/develop-eggs'.
Generated script '/home/examples/ng/var/src/develop/examples/buildout/simple/bin/buildout'.
bin/buildout -c buildout.cfg
echo

(py3k)$ 

Tout ce que je fais, c'est nettoyer puis construire.

Recommended Posts

Makefile minimal et buildout.cfg pour créer un environnement avec buildout
Créer un environnement avec virtualenv
Préparer un environnement pour utiliser OpenCV et Pillow avec AWS Lambda
Comment créer un environnement NVIDIA Docker
Créez une API pour convertir des fichiers PDF en images TIF avec FastAPI et Docker
J'ai essayé de créer un environnement à vérifier régulièrement en utilisant Selenium avec AWS Fargate
[Python] Comment créer un environnement de serveur Web local avec SimpleHTTPServer et CGIHTTPServer
Un moyen simple de créer un module d'importation avec jupyter
Créez un environnement Open AI Gym avec Bash sur Windows 10
Créez un environnement pour l'automatisation des tests avec AirtestIDE (Astuces)
Créer un environnement pour utiliser CaboCha avec Google Colaboratory
Comment passer des arguments ou des variables d'environnement avec Makefile et faire une commande sur #Linux
Étapes pour créer rapidement un environnement d'apprentissage en profondeur sur Mac avec TensorFlow et OpenCV
Créer une API avec Django
Créez un environnement pour "Deep Learning from scratch" avec Docker
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
Créer une fonction d'authentification à l'aide de django-allauth et CustomUser dans Django
Créer une application Todo avec Django ① Créer un environnement avec Docker
[Python Kivy] Comment créer un fichier exe avec pyinstaller
Comment créer une trame de données et jouer avec des éléments avec des pandas
[Django] Mémo pour créer un environnement de Django + MySQL + Vue.js [Python]
Vue d'ensemble de l'environnement virtuel Python et comment le créer
J'ai essayé de créer un article dans Wiki.js avec SQL Alchemy
J'ai trouvé un moyen de créer un modèle 3D à partir de photos Partie 01 Créer un environnement
J'ai essayé de créer un environnement de MkDocs sur Amazon Linux
Essayez de créer un visualiseur de différence de chemin d'exécution avec angr + bingraphvis
Essayez de créer un environnement python avec Visual Studio Code et WSL
Créer un environnement pour Django x Apache x mod_wsgi avec Vagrant (Ubuntu 16.04)
J'ai essayé de créer des taureaux et des vaches avec un programme shell
Créez un environnement d'apprentissage automatique arbitraire avec GCP + Docker + Jupyter Lab
Comment créer un environnement d'exécution Python et Jupyter avec VSCode
Créez une tranche d'âge avec les pandas
Créer un environnement avec pyenv et pyenv-virtualenv
[Pour les débutants] Étapes pour créer des compétences personnalisées Alexa et associer des comptes au pool d'utilisateurs de Cognito
Défi pour créer un rapport de liste de l'axe des temps avec l'API Toggl et Python
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
[Python] Créez un linebot pour écrire le nom et l'âge sur l'image
Préparer un environnement pour toucher les fichiers au format grib2 avec python (édition Docker)
Créez un environnement Python 3 avec pyenv sur Mac et affichez des graphiques Network X
Je souhaite créer un profil utilisateur Ubuntu Chrome avec Colab uniquement
(Remarque) Une application Web qui utilise TensorFlow pour déduire les noms de morceaux recommandés [Créer un environnement d'exécution avec docker-compose]
Comment préparer un environnement avec une version et un package Python différents pour chaque projet avec pyenv-virtualenv sur Amazon Linux
Créer une application en classifiant avec Pygame
[Python] Création d'un environnement avec Anaconda [Mac]
Changer l'environnement Python 64 bits en environnement 32 bits avec Anaconda
Créer une visionneuse de traitement d'image avec PySimpleGUI
Remarques lors de la création d'un environnement avec python
[Python] Créez un environnement virtuel avec Anaconda
Créez rapidement un fichier Excel avec Python #python
Fractal pour faire et jouer avec Python
Créer un environnement Python + uWSGI + Nginx avec Docker
Créer et décrypter du code César avec python
Créer un écran de mise à jour avec Django Updateview