OS X-决定anaconda和自制Python环境

OS X-决定anaconda和自制Python环境,python,macos,numpy,homebrew,anaconda,Python,Macos,Numpy,Homebrew,Anaconda,我在MacOSX上广泛使用Python,用于数字应用程序和web开发(大致相同)。我最近检查了笔记本电脑上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

我在MacOSX上广泛使用Python,用于数字应用程序和web开发(大致相同)。我最近检查了笔记本电脑上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
。我删除了自制版本和Python.org下载(保留了主系统版本)。Conda非常适合数值计算,因为我可以在根环境中安装Jupyter/Numpy/Pandas,而不必为每个项目安装VirtualNVS

但是现在我的整个web开发工作流程都搞砸了。我的虚拟机都不起作用,因为很明显,一个人不应该同时使用康达和虚拟机。我试图从
requirements.txt
文件创建conda环境。我对django使用的一个软件包是“markdown_deux”,这在Conda回购协议中是不可用的。我研究了构建它的方法,但是创建一个菜谱需要很多努力(创建YAML文件,等等)


有人找到了一个很好的折衷方案吗?我正在考虑返回到通用的自制版本,并编写一个别名,以便在必要时将路径更改回conda版本。虽然这也需要跟踪我现在使用的是哪一个..

我在所有项目(数据科学,一些web开发人员)中都使用自制Python

康达一点也不奇怪,你可以用
pip
和的组合手工制作相同的软件包。事实上,它甚至更好,因为您可以更好地控制安装内容

只有在进行web开发时,才能使用VirtualNV。对于数字应用程序,您可能希望始终拥有最新版本的软件包

如果要使用pip一次性更新所有软件包,可以使用以下命令:

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

我发现最好的工作流:

  • 使用
    conda
    进行虚拟环境管理从不使用/安装到系统python中

  • 使用
    pip
    安装到活动的虚拟环境中,就像正常情况一样

  • 仅对难以安装的软件(如Qt)使用
    conda
    软件包

自动化/额外费用

  • 使用
    autoenv
    direnv
    并在进入目录时通过将conda命令放入
    .env
    .envsrc
    文件中自动激活虚拟环境

您所说的“只有在进行web开发时才能使用VirtualNV”是什么意思?我用它来学习scikit,效果很好。Conda有300多个软件包。我怀疑这些都对一个人的专业领域有用。另一点是brew软件包需要brew python。把它改成巨蟒是一件痛苦的事(我试过了)。我完全同意你的看法,巨蟒只不过是一个pip+virtualenv(+virtualenvwraper)。然而,最近我发现了内置Python的一个限制(这不是“因为”Python):有些库只能安装在Anaconda上,而不能安装在Python上。我的例子是Gurobi(一个线性优化器)。自制科学不受欢迎。这个问答需要更新——在Mac上安装Python的整个问题已经改变了。警告买主!我们现在应该用什么新方法@stonecanyon?我可以问一下你是怎么发现有四个的吗?您用来查找这些python发行版的命令是什么?您可以在Mac或Linux中尝试类似的方法:
locate python|grep“bin/python”