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.
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
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
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.