繁体   English   中英

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

[英]OS X - Deciding between anaconda and homebrew Python environments

我在 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 非常适合数值计算,因为我可以在 root 环境中安装 Jupyter/Numpy/Pandas,而不必费心为每个项目安装 virtualenvs。

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

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

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

Conda 没什么特别的,你可以通过pipHomebrew science的组合手工获得相同的包。 实际上,它甚至更好,因为您可以更好地控制安装的内容。

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

如果要使用 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。

我发现最好的工作流程:

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

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

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

自动化/附加功能

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM