Я использую Python широко на моей Mac OS X, как для численных приложений, так и для веб-разработки (примерно одинаково). Недавно я проверил количество установок Python, которые у меня были на моем ноутбуке, и был шокирован тем, что нашел четыре:
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
Я решил объединить все это и использовать conda
. Я удалил версию Homebrew и загрузку Python.org(сохранил основную систему). Conda отлично подходит для численных вычислений, потому что я могу установить Jupyter/Numpy/Pandas в корневую среду и не должен беспокоить установку virtualenvs для каждого проекта.
Но теперь весь рабочий процесс веб-разработки запутан. Ни один из моих virtualenvs не работает, поскольку, по-видимому, не предполагается использовать conda и virtualenv вместе. Я попытался создать среды конда из файла requirements.txt
. Один пакет, который я использовал с django, был "markdown_deux", который недоступен в репозитории Conda. Я рассмотрел способы его создания, но создание рецепта требует больших усилий (создайте файл YAML и т.д.)
Кто-нибудь нашел хороший компромисс для этого? Я собираюсь вернуться к версии homebrew для общего использования и написать псевдоним для изменения пути к версии conda по мере необходимости. Хотя это также потребует отслеживания, которое я использую сейчас.