Recommandation de construction d'un environnement Python portable avec conda

Aperçu

Récemment, il semble que Anaconda soit souvent utilisé pour construire rapidement un environnement Python pour l'analyse des données.

Pour Anaconda et sa configuration minimale Miniconda, utilisez le gestionnaire de packages inclus conda. Vous pouvez l'utiliser pour gérer l'ensemble de l'environnement, y compris Python lui-même. Dans le développement Python conventionnel, il était nécessaire de créer un environnement à l'aide d'outils individuels conformément à l'objectif suivant.

Avec Anaconda / Miniconda, cela ne peut être fait qu'avec conda.

Dans des situations telles que le développement d'équipe ou l'exécution de livrables sur un serveur de production, il est utile de pouvoir reconstruire rapidement l'environnement construit sur une autre machine. Lors de l'utilisation de pip et pyenv, la version de la bibliothèque et de Python lui-même était gérée en préparant des fichiers tels que requirements.txt et .python-version, respectivement. Avec conda, vous pouvez facilement reconstruire votre environnement à partir de là en exportant vos paramètres d'environnement au format YAML.

La méthode détaillée est expliquée ci-dessous.

Installation de Miniconda

Anaconda est une plate-forme tout-en-un qui comprend de nombreux packages majeurs, mais si vous souhaitez créer l'environnement minimum requis pour chaque projet comme cette fois, il est plus intelligent d'utiliser Miniconda.

Pour installer Miniconda, démarrez le programme d'installation téléchargé comme décrit dans ici.

$ bash Miniconda2-latest-MacOSX-x86_64.sh

Pour Mac, vous pouvez également installer avec brew cask.

$ brew install Caskroom/cask/miniconda

Dans ce qui suit, il est supposé que Miniconda est déjà installé et que chaque commande comprenant conda est dans le PATH.

Construire l'environnement

Ici, créons un environnement Python 3.5 avec le nom myenv. Puisque conda traite Python lui-même et les packages de la même manière comme des composants de l'environnement, les packages peuvent être installés en même temps.

$ conda create --name myenv python=3.5 numpy=1.11.1

Activez l'environnement que vous avez créé.

$ source activate myenv

Vous pouvez également installer des packages supplémentaires.

$ conda install scipy

Tous les packages enregistrés avec PyPI ne peuvent pas être installés avec conda. Les packages qui ne peuvent pas être installés avec conda peuvent être installés avec pip comme auparavant. pip est inclus dans l'environnement créé par conda depuis le début.

$ pip install peewee

Exporter et réutiliser les préférences

Vous pouvez exporter vos paramètres d'environnement au format YAML en exécutant conda env export avec votre environnement activé.

$ conda env export > myenv.yaml

Le fichier exporté ressemble à ceci: Les packages installés avec pip sont également exportés correctement.

myenv.yaml


name: myenv
dependencies:
- mkl=11.3.3=0
- numpy=1.11.1=py35_0
- openssl=1.0.2h=1
- pip=8.1.2=py35_0
- python=3.5.1=5
- readline=6.2=2
- scipy=0.17.1=np111py35_1
- setuptools=23.0.0=py35_0
- sqlite=3.13.0=0
- tk=8.5.18=0
- wheel=0.29.0=py35_0
- xz=5.2.2=0
- zlib=1.2.8=3
- pip:
  - peewee==2.8.1

Avec ce fichier, vous pouvez facilement reconstruire le même environnement sur une autre machine.

$ conda env create --file myenv.yaml

Écrivez votre propre fichier de préférences

Le fichier de configuration exporté par export comprendra également les packages installés en raison des dépendances des packages installés intentionnellement. Si vous souhaitez spécifier uniquement les bibliothèques qui sont utilisées directement comme structure du projet, vous devez écrire vous-même le fichier de configuration.

myenv.yaml


name: myenv
dependencies:
- python=3.5.1
- numpy=1.11.1
- scipy=0.17.1
- pip:
  - peewee==2.8.1

La recommandation est de suivre Gemfile, Gemfile.lock dans Ruby's Bundler, de décrire uniquement la bibliothèque à utiliser directement dans myenv.yaml, et d'exporter l'environnement créé en utilisant ceci. La méthode consiste à l'enregistrer avec un nom comme myenv.frozen.yaml. De cette façon, vous pouvez consulter myenv.yaml pour déterminer quels packages utiliser directement dans votre projet, et utiliser myenv.frozen.yaml pour reconstruire exactement le même environnement, y compris les packages dépendants.

référence

Recommended Posts

Recommandation de construction d'un environnement Python portable avec conda
Créer un environnement virtuel avec Python 3
Remarque conda: Création d'un environnement Python avec Spacon ITO
[Pyenv] Construire un environnement python avec ubuntu 16.04
Création d'un environnement Python 3.6 avec Windows + PowerShell
Construire un environnement python avec virtualenv et direnv
Créer un environnement virtuel avec conda avec Python
Construire un environnement virtuel Python
Construire un environnement virtuel Python
Créer un environnement Kubernetes avec Ansible 2
Construire un environnement Python sur Mac
Construire un environnement Python sur Ubuntu
Créez un environnement virtuel avec Python!
Créer un environnement Kubernetes avec Ansible 1
[Note] Liste des commandes de base pour la construction d'un environnement python / conda
Création d'un environnement Windows 7 pour une introduction à l'apprentissage automatique avec Python
[Python] Créez un environnement virtuel avec Anaconda
[Mac] Création d'un environnement virtuel pour Python
Construire un environnement conda pour les utilisateurs de ROS
Recommandation d'Altair! Visualisation des données avec Python
Créez un environnement virtuel pour python avec pyenv
Introduisez Graphviz dans un environnement Python portable
Créez un environnement Python moderne avec Neovim
Créer un environnement de développement Python pour le développement de l'IA
Obtenez une liste des packages installés dans l'environnement actuel avec python
[AtCoder] Résoudre un problème de ABC101 ~ 169 avec Python
Préparer l'environnement d'exécution de Python3 avec Docker
Créez un environnement python avec ansible sur centos6
Construire un environnement Anaconda pour Python avec pyenv
[Python] Créer un environnement de développement Django avec Docker
Utiliser plusieurs versions de l'environnement python avec pyenv
Créer un environnement de construction python3 avec Sublime Text3
Résolvez A ~ D du codeur yuki 247 avec python
[Python] Préparation au développement Web (création d'un environnement virtuel)
Construction d'environnement Poetry-virtualenv avec python de centos-sclo-rh ~ Notes
Un mémo lors de la création d'un environnement python avec miniconda
Pensez à créer un environnement Python 3 dans un environnement Mac
Commandes pour créer un environnement python3 avec virtualenv
Travaillez dans un environnement virtuel avec Python virtualenv.
Flux de création d'un environnement virtuel avec Anaconda
Construire un environnement Python avec OSX Elcapitan
Créez rapidement un environnement Python Django avec IntelliJ
Construire un environnement Python sur le serveur Sakura VPS
Créer un environnement d'apprentissage automatique Python avec des conteneurs
Créer un environnement d'exécution python avec VS Code
Obtenez un environnement de développement Python rapide avec Poetry
Unification de l'environnement Python
environnement python avec docker-compose
Créer un environnement Python
Environnement virtuel avec Python 3.6
Mémo connecté à HiveServer2 d'EMR avec python
Construire un environnement Python avec pyenv, pyenv-virtualenv, Anaconda (Miniconda)
Écrire sur la création d'un environnement Python pour l'écriture de Qiita Qiita
Création d'un environnement de travail Docker R et Python
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Créez un environnement python pour chaque répertoire avec pyenv-virtualenv
Créez un environnement de développement python avec vagrant + ansible + fabric
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
Créer un environnement pour le traitement du langage naturel avec Python