L'année 2015 a commencé avec la sortie de td-client-python (plus précisément, des données de trésor du calendrier de l'Avent 2014 [Python Pandas]. Hit](http://qiita.com/kiyoto/items/2d8d49e3a9b34f652e52)?), Je pense que c'était une année qui pourrait être appelée la première année de Python pour Treasure Data.
Je pensais que j'écrirais quelque chose sur td-client-python, mais ce n'est pas très intéressant d'écrire quelque chose que vous pouvez comprendre en lisant la source, donc si vous ne comprenez pas même si vous lisez la source, pyenv et pyenv- Je profiterai de cette occasion pour expliquer une partie de la mise en œuvre de virtualenv. Cela n'a rien à voir avec Treasure Data, mais j'utilise aussi pyenv pour tester td-client-python et il devrait être acceptable de l'écrire dans Advent Caledar ...
Vers l'été 2012, j'ai soudainement pensé à copier l'arbre de rbenv et essayé sed -e's / RBENV / PYENV / g'-e's / RUBY / PYTHON / g'
. En bref, c'est rbenv pour Pythonista. À l'origine, le but était de faciliter le basculement entre plusieurs versions de CPython et PyPy, nous prenons donc en charge l'installation de diverses versions telles que PyPy, Jython, Stackless, IronPython ainsi que CPython. .. Bien que les spécifications de rbenv aient été intentionnellement modifiées dans certaines parties, il devrait être possible de l'utiliser avec presque la même facilité d'utilisation que rbenv.
Jusqu'à il y a quelques années, je pense qu'il était courant d'utiliser virtualenvwrapper
pour gérer plusieurs virtualenv, mais _ j'avais beaucoup de réflexions_ donc j'ai rendu possible la gestion de plusieurs virtualenv comme une version de pyenv. est. Quand j'ai commencé à le créer, c'était un script qui venait d'encapsuler la commande virtualenv
, mais après cela, la fonction d'activation automatique de virtualenv a été ajoutée, et je pense que cela devient peu à peu plus pratique et plus gros. Je vais.
Il existe également un plug-in pour gérer virtualenv avec pyenv appelé pyenv-virtualenvwrapper, qui est également implémenté assez dur, mais le shell L'incompatibilité entre virtualenvwrapper, qui fonctionne comme une fonction, et pyenv, qui fonctionne sur des scripts shims, est incompatible, et je ne le recommanderais pas à moins que vous ne soyez très friand de virtualenvwrapper.
Il y a environ deux ans, il était possible de sélectionner anaconda, anaconda3, miniconda, miniconda3 comme version de pyenv. Fondamentalement, c'était une tâche simple de télécharger et de frapper .sh
, qui est distribué par Continuum Analytics en standard.
J'ai essayé d'installer correctement Anaconda sur pyenv, mais quand je l'ai installé, j'ai remarqué qu'il y avait pas mal de problèmes. Par exemple
curl
, ʻopenssl`, etc.curl
, ʻopenssl,
sqlite3,
redis`, etc. dans son propre préfixe.curl
est cassé et ne fonctionne pas avec Debian/ etc / pki / tls / certs / ca-bundle.crt
$ PATH
dans le script shims, donc vous ne pouvez pas source
le script que vous attendez en faisant quelque chose comme source activate foo
À propos, jusqu'à présent, il était possible d'installer Anaconda avec pyenv, mais en raison du problème ci-dessus, il était difficile de l'utiliser régulièrement à moins qu'Anaconda ne soit réglé sur pyenv global
. Personnellement, j'ai rarement utilisé Anaconda et seulement utilisé Miniconda3.
Même si la fièvre Python augmente en interne, j'ai pensé que ce serait un problème de laisser le support Anaconda tel quel, alors j'ai essayé de le réparer de différentes manières. Pour vous donner une idée approximative,
curl
, ʻopenssl,
sqlite3, etc., changez pour utiliser celui installé dans
system` au lieu de celui inclus dans Anaconda / Miniconda ([yyuu / pyenv # 491]. (https://github.com/yyuu/pyenv/pull/491))pyenv activate
peut maintenant activer conda env ainsi que virtualenv (yyuu / pyenv-virtualenv # 104) pour permettre à conda env d'être activé dans un format tel que
source activate foo` (yyuu / pyenv-virtualenv # 108 -virtualenv / pull / 108)))pyenv virtualenv
, l'environnement est créé non seulement avec virtualenv
et pyvenv
mais aussi avec conda create
([yyuu / pyenv-virtualenv # 125](https: // github) .com / yyuu / pyenv-virtualenv / pull / 125))Et ainsi de suite, j'ai décidé de faire beaucoup de choses ... Pour le moment, je pense que les mesures mentionnées ci-dessus ont presque résolu les problèmes d'utilisation d'Anaconda avec pyenv mentionnés ci-dessus.
Configurer Jupyter en _correctement _ en installant matplotlib
etc. sur CPython est assez difficile (surtout quand OS X nécessite --enable-framework
etc.), donc Anaconda / Miniconda Je pense que pouvoir le gérer normalement à partir de pyenv est un pas en avant. Nous continuerons d'ajouter des fonctionnalités telles que Pandas et Jupyter qui peuvent résister à une utilisation dans des applications d'analyse de données si nécessaire.
Depuis le 18 décembre 2015 (vendredi), les modifications du côté pyenv-virtualenv n'ont pas encore été publiées sur Homebrew etc., donc pour utiliser la version à laquelle les modifications ont été appliquées, https: // github. Vous devez récupérer les dernières modifications à partir de com / yyuu / pyenv-virtualenv. Je voudrais le publier sur Homebrew, etc. dans l'année.
Je sens que je vais sortir du nombre d'étoiles en fluent dans un petit moment, donc je ne suis pas sûr si je suis un employé de Treasure Data, mais j'aimerais demander la coopération de Stars!
Recommended Posts