[PYTHON] Über Anaconda / Miniconda Unterstützung von Pyenv

2015 begann mit der Veröffentlichung von td-client-python (genauer gesagt Schatzdaten aus dem Adventskalender 2014 [Python Pandas]). Hit](http://qiita.com/kiyoto/items/2d8d49e3a9b34f652e52)?), Ich denke, es war ein Jahr, das als das erste Jahr von Python for Treasure Data bezeichnet werden konnte.

Ich dachte, ich würde etwas über td-client-python schreiben, aber es ist nicht sehr interessant, etwas zu schreiben, das Sie durch Lesen der Quelle verstehen können. Wenn Sie es also nicht verstehen, selbst wenn Sie die Quelle lesen, pyenv und pyenv- Ich werde diese Gelegenheit nutzen, um einige der Implementierungen von virtualenv zu erläutern. Es hat nichts mit Schatzdaten zu tun, aber ich benutze pyenv auch zum Testen von td-client-python und es sollte akzeptabel sein, es in Advent Caledar zu schreiben ...

Was ist Pyenv?

Ungefähr im Sommer 2012 dachte ich plötzlich darüber nach, den Baum von rbenv zu kopieren und versuchte es mit sed-e's / RBENV / PYENV / g'-e's / RUBY / PYTHON / g'`. Kurz gesagt, es ist rbenv für Pythonista. Ursprünglich bestand der Zweck darin, den Wechsel zwischen mehreren CPython-Versionen und PyPy zu vereinfachen. Daher unterstützen wir die Installation verschiedener Varianten wie PyPy, Jython, Stackless, IronPython und CPython. .. Obwohl es einige Teile gibt, in denen die Spezifikationen absichtlich von rbenv geändert wurden, sollte es möglich sein, sie mit der gleichen Verwendbarkeit wie rbenv zu verwenden.

Was ist pyenv-virtualenv?

Bis vor ein paar Jahren war es meiner Meinung nach üblich, "virtualenvwrapper" zum Verwalten mehrerer virtueller Umgebungen zu verwenden, aber ich hatte viele Gedanken, sodass ich es ermöglichte, mehrere virtuelle Umgebungen als Version von pyenv zu verwalten. ist. Als ich anfing, es zu machen, war es ein Skript, das gerade den Befehl "virtualenv" umschlossen hat, aber danach wurde die automatische Aktivierungsfunktion von virtualenv hinzugefügt, und ich habe das Gefühl, dass es nach und nach bequemer und fetter wird. Ich werde.

Es gibt auch ein Plug-In für die Verwaltung von virtualenv mit pyenv namens pyenv-virtualenvwrapper, das ebenfalls recht hart implementiert ist, aber die Shell Die Inkompatibilität zwischen virtualenvwrapper, das als Funktion funktioniert, und pyenv, das auf Shims-Skripten ausgeführt wird, ist inkompatibel, und ich würde es nur empfehlen, wenn Sie virtualenvwrapper sehr mögen.

Beginn der Anaconda / Miniconda-Unterstützung in Pyenv

Vor ungefähr zwei Jahren war es möglich, Anaconda, Anaconda3, Miniconda, Miniconda3 als Version von Pyenv auszuwählen. Grundsätzlich war es eine einfache Aufgabe, .sh herunterzuladen und zu drücken, das von Continuum Analytics standardmäßig vertrieben wird.

Probleme mit der Unterstützung von Anaconda / Miniconda in Pyenv

Ich habe versucht, Anaconda richtig auf pyenv zu installieren, aber als ich es tatsächlich installiert habe, habe ich festgestellt, dass es einige Probleme gab. Zum Beispiel

  1. Anaconda entführt "Curl", "OpenSL" usw.
  1. Erstens ist "Curl" kaputt und funktioniert nicht mit Debian
  1. Das angehängte Aktivierungsskript kann nicht verwendet werden

Übrigens war es bisher möglich, Anaconda mit pyenv zu installieren, aber aufgrund des oben genannten Problems war es schwierig, es regelmäßig zu verwenden, es sei denn, Anaconda war auf "pyenv global" eingestellt. Persönlich habe ich selten Anaconda und nur Miniconda3 verwendet.

Über Anaconda / Miniconda-Unterstützung in Pyenv

Obwohl das Python-Fieber intern zunimmt, dachte ich, es wäre ein Problem, die Anaconda-Unterstützung so zu belassen, wie sie ist, und versuchte, sie auf verschiedene Weise zu beheben. Um Ihnen eine grobe Vorstellung zu geben,

  1. Conda env wurde geändert, um als eine Version von pyenv wie virtualenv behandelt zu werden (yyuu / pyenv # 471).
  2. Geändert, um das in system installierte anstelle des in Anaconda / Miniconda enthaltenen für curl, openssl, sqlite3 usw. zu verwenden ([yyuu / pyenv # 491]). (https://github.com/yyuu/pyenv/pull/491))
  3. pyenv enable kann jetzt sowohl conda env als auch virtualenv aktivieren (yyuu / pyenv-virtualenv # 104).
  4. Ein "Aktivierungs" -Skript wurde vorbereitet, damit conda env auch in einem Format wie "Quellaktivierungs-Foo" (yyuu / pyenv-virtualenv # 108 aktiviert werden kann. -virtualenv / pull / 108)))
  5. Beim Erstellen einer virtuellen Umgebung mit "pyenv virtualenv" wird die Umgebung nicht nur mit "virtualenv" und "pyvenv" erstellt, sondern auch mit "conda create" ([yyuu / pyenv-virtualenv # 125](https: // github). .com / yyuu / pyenv-virtualenv / pull / 125))

Und so weiter, ich habe beschlossen, viele Dinge zu tun ... Derzeit denke ich, dass die oben genannten Maßnahmen die oben erwähnten Probleme bei der Verwendung von Anaconda mit Pyenv fast gelöst haben.

Zusammenfassung

Das Einrichten von Jupyter durch die ordnungsgemäße Installation von "matplotlib" usw. auf CPython ist ziemlich schwierig (insbesondere wenn OS X "--enable-framework" usw. erfordert), daher Anaconda / Miniconda Ich denke, dass es ein Fortschritt ist, von Pyenv aus normal damit umgehen zu können. Wir werden weiterhin Funktionen wie Pandas und Jupyter hinzufügen, die bei Bedarf der Verwendung in Datenanalyseanwendungen standhalten.

Bis zum 18. Dezember 2015 (Fr) wurden die Änderungen auf der pyenv-virtualenv-Seite noch nicht für Homebrew usw. freigegeben. Um also die Version zu verwenden, auf die die Änderungen angewendet wurden, https: // github. Sie müssen die neuesten Änderungen von com / yyuu / pyenv-virtualenv abrufen. Ich möchte es innerhalb des Jahres für Homebrew usw. veröffentlichen.

Schließlich

Ich habe das Gefühl, dass ich in Kürze aus der Anzahl der fließenden Sterne herauskomme, daher bin ich mir nicht sicher, ob ich ein Mitarbeiter von Treasure Data bin, aber ich möchte um die Mitarbeit von Stars bitten!

fluent/fluentd

yyuu/pyenv

Recommended Posts

Über Anaconda / Miniconda Unterstützung von Pyenv
Fabric unterstützt Python 3
Über Python für Schleife
Erstellen einer Python-Umgebung mit pyenv, pyenv-virtualenv, Anaconda (Miniconda)
Über Python für ~ (Bereich)
Über pgbench für MySQL
Über Polymorphismus zur Nestbeseitigung
Anaconda 4.4.0 Grundeinstellungen für Windows
F2py unter Miniconda für Windows
Über die japanische Unterstützung von Cometchat
Über die Warnung "Kompiliert für ~" von mod_wsgi
Über "für _ in range ():" von Python
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?