【问题标题】:OS X - Deciding between anaconda and homebrew Python environmentsOS X - 在 anaconda 和自制 Python 环境之间做出决定
【发布时间】:2016-02-06 03:06:15
【问题描述】:

我在我的 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

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

但是现在我的整个 Web 开发工作流程都搞砸了。我的 virtualenvs 都不起作用,因为显然不应该同时使用 conda 和 virtualenv。我尝试从 requirements.txt 文件创建 conda 环境。我与 django 一起使用的一个包是“markdown_deux”,它在 Conda 存储库中不可用。我查看了构建它的方法,但创建一个配方需要付出很多努力(创建 YAML 文件等)

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

【问题讨论】:

  • 请问你是怎么知道有四个的?你用来查找那些 python 发行版的命令是什么?
  • 你可以在 Mac 或 Linux 中尝试这样的事情:locate python | grep "bin/python"

标签: python macos numpy homebrew anaconda


【解决方案1】:

我的所有项目(数据科学、一些网络开发)都使用 Homebrew Python。

Conda 没有什么花哨的,您可以通过pipHomebrew science 的组合手动拥有相同的包。实际上,它甚至更好,因为您可以更好地控制您安装的内容。

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

如果你想用 pip 一次更新所有的包,你可以使用这个命令:

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

编辑:这个答案是旧的,如果你想要一个更最新的比较,我发现这篇不错的博客文章比较了这两种方法:

https://towardsdatascience.com/pipenv-vs-conda-for-data-scientists-b9a372faf9d9

我仍然使用 Homebrew Python,并在 conda 上使用 pip / pipenv。

【讨论】:

  • “只有在进行 Web 开发时才能使用 virtualenvs”是什么意思?我将它用于 scikit-learn,效果很好。
  • Conda 附带 300 多个软件包。我怀疑所有这些都对一个人的专业领域有用。还有一点是brew包需要brew python。把它改成 anaconda 很痛苦(我试过了)。
  • 我完全同意你的观点,Anaconda 只不过是一个 pip + virtualenv (+ virtualenvwrapper)。但是最近我发现了内置 Python 的一个限制(这不是“因为”Python):一些库只能安装在 Anaconda 上,而不能与 Python 一起安装。我的例子是 Gurobi(一个线性优化器)。
  • 自制科学已被弃用。这个问题和答案需要更新——在 Mac 上安装 Python 的整个问题已经改变。告售者!
  • 我们现在应该使用什么/一种新方法@stonecanyon?
【解决方案2】:

我发现的最佳工作流程:

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

  • 使用pip 安装到活动虚拟环境中,就像平常一样。

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

自动化/附加功能

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

【讨论】:

    猜你喜欢
    • 2011-03-30
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    相关资源
    最近更新 更多