wake-up-neo.com

OS X - Entscheidung zwischen Anaconda- und Homebrew-Python-Umgebungen

Ich verwende Python unter Mac OS X ausgiebig, sowohl für numerische Anwendungen als auch für die Webentwicklung (in etwa gleich). Ich habe die Anzahl der Python-Installationen überprüft, die ich kürzlich auf meinem Laptop installiert hatte, und war schockiert, four zu finden:

Came with Mac OS X:
/usr/bin/python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin

Installed via Homebrew
/usr/local/bin/python
Python 2.7.10 (default, Jul 13 2015, 12:05:58)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin

Installed via Anaconda/Miniconda
~/anaconda/bin/python
Python 2.7.10 |Anaconda 2.3.0 (x86_64)| (default, Oct 19 2015, 18:31:17)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

Came with the downloaded .pkg from python.org
/System/Library/Frameworks/Python.framework/Versions/Current/bin/python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin

Ich beschloss, all das zu vereinheitlichen und conda zu verwenden. Ich habe die Homebrew-Version und den Python.org-Download entfernt (das Hauptsystem wurde beibehalten). Conda eignet sich hervorragend für numerische Berechnungen, da ich Jupyter/Numpy/Pandas in der Root-Umgebung installieren kann und nicht für jedes Projekt virtualenvs installieren muss.

Jetzt ist mein gesamter Webentwicklungsworkflow durcheinander. Keiner meiner virtualenvs funktioniert, da angeblich Conda und virtualenv nicht zusammen verwendet werden sollen. Ich habe versucht, Conda-Umgebungen aus der requirements.txt-Datei zu erstellen. Ein Paket, das ich mit Django verwendete, war "markdown_deux", das im Conda-Repo nicht verfügbar ist. Ich habe nach Möglichkeiten gesucht, es zu erstellen, aber das Erstellen eines Rezepts ist sehr aufwendig (Erstellen einer YAML-Datei usw.).

Hat jemand dafür einen guten Kompromiss gefunden? Ich denke darüber nach, zur Homebrew-Version für den allgemeinen Gebrauch zurückzukehren und einen Alias ​​zu schreiben, um den Pfad bei Bedarf wieder zur Conda-Version zu ändern. Dies erfordert jedoch auch eine Nachverfolgung, welche ich gerade verwende.

22
user1496984

Ich verwende Homebrew Python für alle meine Projekte (Data Science, einige Web-Entwickler).

Conda ist nichts Besonderes, Sie können die gleichen Pakete von Hand mit einer Kombination aus pip und Homebrew science haben. Es ist sogar noch besser, weil Sie mehr Kontrolle über Ihre Installation haben.

Sie können Ihre Virtualenvs nur bei der Webentwicklung verwenden. Für die numerischen Anwendungen möchten Sie wahrscheinlich immer die neuesten Versionen Ihrer Pakete haben.

Wenn Sie alle Ihre Pakete gleichzeitig mit pip aktualisieren möchten, können Sie diesen Befehl verwenden:

Sudo -H pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 Sudo -H pip install -U
21
Kikohs

Workflow, den ich am besten gefunden habe:

  • Verwenden Sie conda für die Verwaltung der virtuellen Umgebung. Niemals use/install in System-Python.

  • Verwenden Sie pip zur Installation in der aktiven virtuellen Umgebung, genau wie normal.

  • Verwenden Sie conda packages only für schwer zu installierende Software wie Qt.

Automatisierung/Extras

  • Verwenden Sie autoenv oder direnv und aktivieren Sie automatisch virtuelle Umgebungen, wenn Sie ein Verzeichnis aufrufen, indem Sie den Befehl conda in die Datei .env oder .envsrc setzen.
2
Rebs