OS X - 在anaconda和自制Python环境之间做出决定

use*_*984 25 python macos homebrew numpy anaconda

我在Mac OS X上广泛使用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
Run Code Online (Sandbox Code Playgroud)

我决定将所有这些统一起来并使用conda.我删除了Homebrew版本和Python.org下载(保留了主系统).Conda非常适合数值计算,因为我可以在根环境中安装Jupyter/Numpy/Pandas,而不必为每个项目安装virtualenvs.

但现在我的整个Web开发工作流程都搞砸了.我的virtualenvs都没有用,因为显然我不应该一起使用conda和virtualenv.我试图从requirements.txt文件中创建conda环境.我与django一起使用的一个包是"markdown_deux",这在Conda回购中没有.我查看了构建它的方法,但创建一个配方需要花费很多精力(创建YAML文件等).

有没有人为此找到了妥协?我正在考虑回到自制版本以供一般使用,并根据需要编写别名以将路径更改回conda版本.虽然这也需要跟踪我现在使用的是哪一个..

Kik*_*ohs 22

我将Homebrew Python用于我的所有项目(数据科学,一些Web开发).

Conda没什么特别的,你可以用pipHomebrew科学的组合手工制作相同的包装.实际上,它甚至更好,因为您可以更好地控制安装的内容.

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

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

sudo -H pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 sudo -H pip install -U
Run Code Online (Sandbox Code Playgroud)

  • 自制科学已被弃用.这个问题和答案需要更新 - 在Mac上安装Python的整个问题已经改变.买者自负! (6认同)
  • 我完全同意你的观点,Anaconda只不过是一个点+ virtualenv(+ virtualenvwrapper).但是最近我发现了内置Python的一个限制(它不是"因为"Python):一些库只能安装在Anaconda上,而不能安装在Python上.我的例子是Gurobi(线性优化器). (3认同)
  • 你是什​​么意思"你只有在进行网络开发时才能使用你的虚拟环境."?我用它来scikit-learn,这很好用. (2认同)
  • Conda提供300多种套餐.我怀疑所有人都对某个专业领域有用.另一点是brew包需要brew python.把它变成蟒蛇是痛苦的(我试过). (2认同)
  • 我们应该使用@stonecanyon的新方法是什么? (2认同)

Reb*_*ebs 13

我发现最好的工作流程:

  • 使用conda虚拟环境的管理。永远不要使用 / install 到系统 python 中。

  • 使用pip安装到活动的虚拟环境,就像正常的。

  • conda软件包用于难以安装的软件,例如 Qt。

自动化/附加功能

  • 通过将 conda 命令放入or文件中,在进入目录时使用autoenvordirenv和自动激活虚拟环境。.env.envsrc