Présentation de vebootstrap pour gérer virtualenv plus facilement dans l'environnement de développement Python

Début 2018, Pipenv est recommandé. J'ai remarqué que le nombre de bibliothèques fournissant des binaires pour Windows a considérablement augmenté, vous ne devriez donc pas avoir de problème sans utiliser (Mini | Ana) Conda.


En parlant d'environnement de développement Python ces jours-ci, je pense que les modèles suivants sont courants.

Une fois que vous êtes prêt, vous aurez un environnement flexible, mais il y a de nombreuses étapes et vous devrez déployer beaucoup de choses autres que python. De plus, certains sont difficiles à déployer sous Windows. J'ai donc créé un package python pur qui facilite un peu la gestion de l'environnement virtualenv pour chaque projet.

Motivation

À l'origine, l'idéal était qu'il était facile à configurer, il suffit de le régler sur python hoge.py comme l'exécution normale d'un script, l'environnement virtualenv dédié a été activé et les packages nécessaires ont été inclus. Le script devait être lancé. En termes simples, le package qui réalise cela est le vebootstrap créé cette fois.

vebootstrap https://pypi.python.org/pypi/vebootstrap https://github.com/tomoemon/vebootstrap

Je m'en fiche car je ne change pas trop de version de python lors de l'écriture d'un petit script personnel (je devrais pouvoir l'utiliser en combinaison avec pythonz etc. si nécessaire).

Environnement d'exploitation

Ce que tu peux faire

Choses impossibles

installer

Installez vebootstrap à l'aide du pip qui correspond au python que vous prévoyez d'utiliser. Si vous utilisez la norme système python dans un environnement Linux, vous aurez besoin de sudo.

$ pip install vebootstrap

Comment utiliser

Veuillez modifier le nom de répertoire et le nom de fichier de script suivants comme il convient. Cependant, ne modifiez pas requirements.txt car vebootstrap recherchera un fichier portant ce nom. De plus, dans l'exemple, il est exécuté après cd dans le répertoire du projet, mais le comportement est le même même s'il est exécuté depuis l'extérieur du répertoire.

** Motif le plus simple **

Structure du répertoire


project_test1/
    hoge.py

hoge.py


import vebootstrap

print("Hello vebootstrap")

Exécution de la commande


$ cd project_test1
$ python hoge.py

Si vous mettez ʻimport vebootstrap au début du script principal hoge.pyet que vous le lancez, il sera appelé.py ## (##est la version python) dans le répertoireproject_test1au premier démarrage. Créez un répertoire pour l'environnement virtualenv. Après cela, exécutezhoge.py avec l'environnement virtualenv actif, puis activez et exécutez le .py ## ʻexistant au deuxième démarrage et aux suivants.

** S'il y a des packages dépendants **

Structure du répertoire


project_test2/
    hoge.py
    requirements.txt

hoge.py


import vebootstrap
import requests

print(requests.get('http://yahoo.co.jp').text[:100])

requirements.txt


requests

Exécution de la commande


$ cd project_test2
$ python hoge.py

La même chose est vraie pour créer un répertoire pour l'environnement virtualenv la première fois que hoge.py est démarré, puis utiliser requirements.txt pour pip installer les packages dépendants. Activez ensuite l'environnement virtualenv et exécutez hoge.py. Si vous réécrivez requirements.txt, recréez l'environnement virtualenv au prochain démarrage. (Comme il peut être difficile de désinstaller des packages individuels, nous avons fait de telles spécifications)

** (Windows uniquement) Si vous souhaitez installer un package binaire pour Windows **

Il est assez difficile pour les utilisateurs de Windows d'installer des packages qui nécessitent leur propre build, tels que «numpy» et «lxml». Vous devrez trouver un package pré-construit et l'installer manuellement en utilisant autre chose que pip (PyPI), mais vebootstrap rend cela facile.

Plus précisément, j'essaie de trouver le package cible sur le site suivant et de l'installer. http://www.lfd.uci.edu/~gohlke/pythonlibs/

Structure du répertoire


project_test3/
    hoge.py
    requirements.txt

hoge.py


import vebootstrap
import numpy

print(dir(numpy))

requirements.txt


#windows:numpy

Exécution de la commande


$ cd project_test3
$ python hoge.py

L'utilisation est presque la même qu'avant, mais la description de requirements.txt est un peu spéciale. S'il y a une ligne de la forme # windows: hogehoge, vebootstrap recherchera le package hogehoge du site précédent. Pour pip, les lignes commençant par # sont traitées comme des commentaires, donc cela n'est interprété que par vebootstrap.

Vous pouvez également installer les packages installés par pip standard et les binaires pour Windows comme indiqué ci-dessous.

requirements.txt


requests
#windows:numpy
beautifulsoup4

Je ne sais pas quel paquet vous devez installer pré-construit de cette manière spéciale! Si c'est le cas, vous devez d'abord écrire hogehoge et requirements.txt comme d'habitude, et si vous obtenez une erreur peu claire, écrivez # windows: hogehoge.

** Si vous ne souhaitez pas inclure d'instructions d'importation non pertinentes **

ʻImport vebootstrap` est la magie minimale pour activer l'environnement virtualenv simplement en exécutant python, mais cela peut ne pas être nécessaire si vous écrivez un script à exposer au monde extérieur. Dans ce cas, utilisez la fonction pour exécuter le module en tant que script comme indiqué ci-dessous. Il se comporte de la même manière que lorsqu'une instruction d'importation est insérée.

Structure du répertoire


project_test4/
    hoge.py
    requirements.txt

hoge.py


import requests

print(requests.get('http://yahoo.co.jp').text[:100])

requirements.txt


requests

Exécution de la commande


$ cd project_test4
$ python -m vebootstrap hoge.py

** S'il est compliqué d'écrire des packages dépendants pour la plupart des projets à chaque fois **

Si vous êtes un créateur de projet fréquent et que vous écrivez un requirements.txt similaire à chaque fois, essayez d'utiliser les fonctionnalités suivantes.

Utiliser vebootstrap ne serait-ce qu'une seule fois crée un fichier de configuration appelé .vebootstrap dans votre répertoire personnel (cd% USERPROFILE%pour les utilisateurs Windows).

$HOME/.vebootstrap


{
    "default_packages": [
        "ipython"
    ], 
    "default_windows_packages": []
}

Ce fichier spécifie les packages qui doivent être installés dans tous les projets quel que soit le contenu de requirements.txt. Par défaut, le package ʻipythonest installé pour que le REPL de l'environnement virtualenv correspondant puisse être utilisé immédiatement. Ajoutez d'autres packages si nécessaire. Pour les binaires Windows, ajoutez-les àdefault_windows_packages sous la forme" numpy "ʻ et ils seront installés automatiquement.

Exemple lors de l'ajout de

$HOME/.vebootstrap


{
    "default_packages": [
        "ipython",
        "requests"
    ], 
    "default_windows_packages": [
        "numpy"
    ]
}

Remarques

Notez que l'environnement virtualenv est créé pour chaque version de python que vous exécutez. Lorsque vous tapez la commande suivante, par exemple, si la version de python est 2.7.x, créez un environnement virtualenv avec le nom .py27 (le fichier exécutable python copié à l'intérieur est 2.7.x. Des choses).

$ python hoge.py

Si vous exécutez la commande suivante dans le même répertoire, un environnement virtualenv nommé .py35 sera créé. (Lorsque la version de python3 est 3.5.x)

$ python3 hoge.py

à la fin

Étant donné que mon environnement principal est Windows, il peut être difficile pour les principaux utilisateurs de Linux de l'utiliser. Veuillez préciser si vous dites "il ne peut pas être utilisé dans de tels cas".

Et bien que le nom du paquet vebootstrap soit un peu long (et un peu difficile à taper) personnellement, les deux ve et veb ont déjà été pris ...

Recommended Posts

Présentation de vebootstrap pour gérer virtualenv plus facilement dans l'environnement de développement Python
Environnement de développement en Python
Gérer les variables d'environnement en Python
Comment gérer le japonais avec Python
Méthode pour créer un environnement Python dans Xcode 6
Comment préparer l'environnement de développement Python [Mac]
Construire un environnement de développement Python (pythonz, virtualenv, direnv)
python dans virtualenv
Introduction à Python Préparons l'environnement de développement
Utilisez un module de cryptographie qui gère OpenSSL en Python
environnement de développement python -utilisation de pyenv et virtualenv-
Travaillez dans un environnement virtuel avec Python virtualenv.
Comment gérer le type datetime dans sqlite3 de python
Utilisez os.getenv pour obtenir des variables d'environnement en Python
Développement d'applications pour tweeter en Python à partir de Visual Studio 2017
Construction de l'environnement de développement Python
Je souhaite créer facilement un environnement de développement basé sur un modèle
À propos de l'environnement de développement Python
environnement virtuel en Python
Gérer le démarquage avec python
Construction de l'environnement de développement Python 2020 [De l'installation de Python à l'introduction à la poésie]
Introduction de Python 2.7 à CentOS 6.6
Construction de l'environnement de développement python2.7
Développement de framework avec Python
mémo python (pour moi-même): À propos de l'environnement de développement virtualenv
Développement Slackbot en Python
Comment gérer JSON en Ruby, Python, JavaScript, PHP
Commandes souvent utilisées dans l'environnement de développement lors de l'implémentation de Python
Créer un environnement de développement Python avec Eclipse (ajouter un éditeur HTML)
La vidéo ne peut pas être chargée avec Spyder dans l'environnement de développement Python
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
Comment entrer dans l'environnement de développement Python avec Vagrant
Introduction d'une bonne méthode de gestion des connexions DB en Python
UpNext2 Development Record # 1 Construire un environnement Python CI dans VS Code
Formatez facilement JSON avec Python
Pour vider stdout en Python
Gérez l'environnement python avec virtualenv
Connectez-vous au site Web en Python
Organiser l'environnement de développement Python
[ev3dev × Python] Construction de l'environnement de développement ev3dev
Développement Python avec Visual Studio 2017
Parler avec Python [synthèse vocale]
[MEMO] [Construction de l'environnement de développement] Python
[Pour organiser] Environnement de développement Python
Présentation de l'interface graphique: PyQt5 en Python
Comment développer en Python
Développement Python avec Visual Studio
[Python] Comment utiliser virtualenv
Gérer les nombres complexes en Python
Publier sur Slack en Python
[Windows 10] [Construction de l'environnement de développement] Comment résoudre le cas où un python import'django.xxx non résolu (import'django.xxx) non résolu se produit dans VS Code
Apprentissage de l'historique pour participer au développement d'applications d'équipe avec Python ~ Créer un environnement Docker / Django / Nginx / MariaDB ~
Comment créer un environnement Python à l'aide de Virtualenv sur Ubuntu 18.04 LTS
Développement LINEbot, je souhaite vérifier le fonctionnement dans l'environnement local
De l'installation d'Ansible à la création d'un environnement Python dans l'environnement virtuel de Vagrant
[Python] Comment faire PCA avec Python
Comment collecter des images en Python