Construire un environnement de développement Python (pythonz, virtualenv, direnv)

Chose que tu veux faire

Créez un environnement pour développer des programmes d'application en Python.

Pour le moment, fixez les objectifs comme suit.

Traditionnellement, pyenv-virtualenv a été utilisé à ces fins.

pyenv-virtualenv est pratique, mais je n'ai pas aimé comment donner des arguments de commande, donc cette fois pythonz, [virtualenv] ](Https://virtualenv.pypa.io/), direnv seront utilisés en combinaison. L'utilisation de direnv a également l'avantage d'être utile pour créer des environnements autres que Python.

Rôle de chaque outil

1. Procédure d'installation

1-0 Préparation à l'introduction

Je suppose un environnement Linux, mais je pense que la procédure est presque la même pour les autres OS. J'utilise Debian 7 (Wheezy). Lors de l'utilisation de cette méthode sous Windows, il est recommandé de créer un environnement virtuel avec vagrant. À titre de prémisse, on suppose que les préparatifs suivants sont effectués.

Exemple de préparation:


$ sudo apt-get install build-essential zlib1g-dev libbz2-dev libssl-dev libreadline-dev libncurses5-dev libsqlite3-dev libgdbm-dev libdb-dev libexpat-dev libpcap-dev liblzma-dev libpcre3-dev curl python-pip

$ sudo yum install zlib-devel bzip2-devel openssl-devel readline-devel ncurses-devel sqlite-devel gdbm-devel db4-devel expat-devel libpcap-devel xz-devel pcre-devel curl
$ curl -L https://bootstrap.pypa.io/get-pip.py | sudo python

1-1 Installation de pythonz

Il existe deux façons d'installer pythonz:

  1. Installer en tant qu'utilisateur avec des privilèges d'administrateur
  2. Installez en tant qu'utilisateur général

Ici, installez avec les privilèges d'un utilisateur général.


$ curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
$ echo '[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc' >> $HOME/.bashrc
$ exec $SHELL

De cette façon, lorsqu'un nouveau Python est installé, il sera installé dans le répertoire personnel de chaque utilisateur.

1-2 Installation de virtualenv

Il est recommandé d'utiliser pip pour installer virtualenv.


$ sudo pip install virtualenv

Si vous ne pouvez pas utiliser pip ou installer en tant qu'utilisateur général, reportez-vous à la procédure sur le Site officiel et installez à partir du code source. Ce serait mieux de le faire.

1-3 Installation de direnv

Les fichiers d'exécution sont distribués pour chaque type de système d'exploitation et de processeur sur le site github officiel de direnv. Téléchargez le fichier exécutable approprié et copiez-le dans un répertoire de votre PATH.


$ curl -L -o direnv https://github.com/zimbatm/direnv/releases/download/v2.5.0/direnv.linux-amd64
$ sudo install direnv /usr/local/bin
$ echo 'type direnv > /dev/null 2>&1 && eval "$(direnv hook bash)" ' >> $HOME/.bashrc
$ exec $SHELL

Ici, il est installé par un utilisateur avec des privilèges d'administrateur, mais il peut être installé dans le répertoire personnel de l'utilisateur tant qu'il est dans le PATH.

Si vous pouvez utiliser le langage Go, il est facile de l'installer à partir du code source.

2. Créez un environnement de développement Python

Pratiquons la création d'un nouvel environnement de développement, en supposant un "projet SandBox" qui sera développé avec Python 2.7.9.

2-1 Installation de Python 2.7.9

Vérifiez la version de Python qui peut être installée avec pythonz list -a, puis spécifiez la version à installer. Veuillez patienter car l'installation prendra un certain temps.


$ pythonz list -a 
# Available Python versions
  # cpython:
     2.4
     2.4.1
     2.4.2
     2.4.3
... 

$ pythonz install 2.7.9

Vous pouvez trouver une liste des Pythons installés dans pythonz list.


$ pythonz list
# Installed Python versions
  CPython-2.7.9

Vous pouvez trouver l'emplacement de l'interpréteur Python installé avec pythonz Locate numéro de version.


$ pythonz locate 2.7.9
/home/jnotoya/.pythonz/pythons/CPython-2.7.9/bin/python

Si vous voulez exécuter directement le Python installé, vous pouvez utiliser la fonction de substitution de commande du shell et écrire quelque chose comme $ (pythonz Locate numéro de version).


$ $(pythonz locate 2.7.9) --version
Python 2.7.9
$ $(pythonz locate 2.7.9) -c 'print("Hello, world")'
Hello, world

2-2 Création et paramétrage du répertoire du projet

Créez un répertoire pour y développer le projet. Vous pouvez décider librement du nom et de l'emplacement du répertoire du projet. Ici, créez un répertoire de projet avec le nom "sand_box" dans le répertoire personnel de l'utilisateur.


$ pwd
/home/jnotoya
$ mkdir sand_box

Après avoir créé le répertoire du projet, créez le fichier de configuration du répertoire .envrc. Le fichier de configuration peut être créé et édité avec la commande direnv edit, mais ici, il est facilement créé à partir de la ligne de commande.


$ echo 'layout python $(pythonz locate 2.7.9)' > sand_box/.envrc
$ direnv allow sand_box

Après layout python, utilisez la fonction pythonz pour spécifier l'emplacement de l'interpréteur Python, tel que $ (pythonz Locate numéro de version). Puisque .envrc est passé au shell, vous pouvez utiliser la fonction de substitution de commande du shell $ (...).

Consultez la page de manuel direnv etc. pour savoir comment écrire le fichier de configuration.

2-3 Initialisation de l'environnement de développement

La première fois que vous visitez le répertoire de projet que vous avez créé, virtualenv s'exécute automatiquement pour initialiser votre environnement de développement. Le processus d'initialisation copie l'interpréteur Python installé avec pythonz dans le répertoire du projet.


$ cd sand_box
direnv: loading .envrc
Running virtualenv with interpreter /home/jnotoya/.pythonz/pythons/CPython-2.7.9/bin/python
New python executable in /home/jnotoya/sand_box/.direnv/python-2.7.9/bin/python
Installing setuptools, pip...direnv: ([direnv export bash]) is taking a while to execute. Use CTRL-C to give up.
done.
direnv: export +VIRTUAL_ENV ~PATH

L'exécution de la commande python dans le répertoire du projet exécutera l'interpréteur Python approprié qui a été copié pendant le processus d'initialisation au lieu du Python d'origine sur le système.


$ pwd
/home/jnotoya/sand_box
$ type python
python is /home/jnotoya/sand_box/.direnv/python-2.7.9/bin/python
$ python -c 'import sys;print(sys.version)'
2.7.9 (default, Jan 31 2015, 08:18:30) 
[GCC 4.7.2]

2-4 Installation de la bibliothèque

Installez la bibliothèque utilisée par le projet avec la commande pip. Si vous exécutez pip dans le répertoire du projet, la bibliothèque sera installée dans le répertoire du projet pour être utilisée uniquement dans cet environnement et n'affectera pas l'ensemble du système, vous pouvez donc facilement installer la bibliothèque.

Ici, essayez d'installer la bibliothèque PrettyTable.

$ pwd
/home/jnotoya/sand_box
$ pip install PrettyTable
$ python -c 'import prettytable as pt; help(pt.PrettyTable)'

2-5 Suspension des travaux de développement

Vous pouvez interrompre votre travail de développement en quittant le répertoire du projet. En dehors du répertoire du projet, vous pouvez toujours utiliser l'interpréteur Python fourni sur votre système.


$ pwd
/home/jnotoya/sand_box
$ cd ..
direnv: unloading
$ type python
python is /usr/bin/python
$ python --version
Python 2.7.3

2-6 Travail quotidien

C'est très facile car vous pouvez généralement effectuer des travaux de développement sans être conscient des changements d'environnement. Il n'est pas nécessaire de changer d'environnement avec le workon et de désactiver des commandes comme virtualenvwrapper. Si cela ne fonctionne pas, assurez-vous que quelque part dans .bashrc il y a une description comme celle-ci qui lit les paramètres de pythonz et direnv.

.bashrc


[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc
type direnv > /dev/null 2>&1 && eval "$(direnv hook bash)" 

Si vous renommez le répertoire du projet après l'initialisation, vous devrez faire quelques ajustements. S'il vous plaît soyez prudente.

Recommended Posts

Construire un environnement de développement Python (pythonz, virtualenv, direnv)
Construire un environnement python avec direnv
[ev3dev × Python] Construction de l'environnement de développement ev3dev
J'ai essayé de créer un environnement de développement Mac Python avec pythonz + direnv
Nettoyer l'environnement python avec Pythonz et virtualenv
Construction de l'environnement de développement Python
À propos de l'environnement de développement Python
Construction de l'environnement de développement python2.7
Environnement de développement en Python
Créer un environnement de développement Python avec Visual Studio Code
[Python] Créer un environnement de développement Django avec Docker
Créez un environnement de développement Python sur votre Mac
environnement de développement python -utilisation de pyenv et virtualenv-
Construire un environnement de développement Python sur Raspberry Pi
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
Gérez l'environnement python avec virtualenv
Créer un environnement python3 avec ubuntu 16.04
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Créer un environnement Python sur Windows
Organiser l'environnement de développement Python
Créer un environnement de développement Python sur Mac OS X
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Construire un environnement Python avec Windows
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
[Pour organiser] Environnement de développement Python
Créer un environnement Python hors ligne
mémo python (pour moi-même): À propos de l'environnement de développement virtualenv
Créer un environnement de développement Ubuntu python sur Google Cloud Platform
Créer un environnement de développement Python avec Eclipse (ajouter un éditeur HTML)
Créer un environnement de développement Python basé sur GVim sur les paramètres de base de Windows 10 (2)
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
UpNext2 Development Record # 1 Construire un environnement Python CI dans VS Code
Construire un environnement Mysql + Python avec docker
Préparez votre premier environnement de développement Python
[Python3] Construction de l'environnement de développement << Édition Windows >>
Options d'environnement de développement Python pour mai 2020
Construction de l'environnement de développement Python sur macOS
Mémo de configuration de l'environnement de développement Vim + Python
Paramètres Emacs pour l'environnement de développement Python
Mémo de construction de l'environnement de développement Emacs Python
Vérification de l'environnement de développement NAOqi Python
Créer un environnement Python 3.8 + Pipenv sur Ubuntu 18.04
Créer un environnement python3 sur CentOS7
Configurer un environnement de développement Python avec Atom
Créer un environnement de développement local pour Lambda + Python à l'aide de Serverless Framework
Essayez d'utiliser virtualenv qui peut créer un environnement virtuel de Python
Comment créer un environnement Python à l'aide de Virtualenv sur Ubuntu 18.04 LTS
Construire Python 1.0
Procédure de construction de l'environnement de développement Python (anaconda) (SpringToolsSuites) _2020.4
Environnement de développement Python pour macOS utilisant venv 2016
Créez facilement un environnement de développement avec Laragon
Créer un environnement Jupyter Lab (Python) avec Docker
[Environnement de développement] Python avec Xcode [Avec transition d'écran]
Environnement de création de module d'extension Python 2.7, 3.4, 3.5 sous Windows
Méthode pour créer un environnement Python dans Xcode 6
Blender 2.82 ou version ultérieure + notes sur l'environnement de développement python
Créer un environnement Python 3 et OpenCV sur Ubuntu 18.04
Construire un environnement python sur MacOS (Catallina)
Je veux créer un environnement Python