OS X - 在 anaconda 和 homebrew 之间做出选择 Python 环境
OS X - Deciding between anaconda and homebrew Python environments
我在 Mac OS X 上广泛使用 Python,用于数字应用程序和 Web 开发(大致相同)。我检查了我最近在我的笔记本电脑上安装的 Python 的数量,并震惊地发现 4:
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 开发工作流程都一团糟。 None 我的 virtualenvs 工作,因为显然不应该同时使用 conda 和 virtualenv。我尝试从 requirements.txt
文件创建 conda 环境。我在 django 中使用的一个包是 "markdown_deux",它在 Conda 存储库中不可用。我研究了构建它的方法,但是创建食谱需要很多努力(创建 YAML 文件等)
有没有人为此找到一个好的折衷方案?我正在考虑返回到一般用途的自制版本,并编写一个别名以根据需要将路径更改回 conda 版本。虽然这也需要跟踪我现在使用的是哪一个..
我的所有项目(数据科学,一些网络开发)都使用 Homebrew Python。
Conda 没什么特别的,您可以通过组合 pip
和 Homebrew 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。
我发现最好的工作流程:
使用conda
进行虚拟环境管理。 从不 使用/安装到系统 python。
使用pip
安装到活动虚拟环境,就像正常一样。
使用conda
包仅用于难以安装的软件,例如Qt。
自动化/附加功能
- 使用
autoenv
或 direnv
并通过将 conda 命令放入 .env
或 .envsrc
文件进入目录时自动激活虚拟环境。
我在 Mac OS X 上广泛使用 Python,用于数字应用程序和 Web 开发(大致相同)。我检查了我最近在我的笔记本电脑上安装的 Python 的数量,并震惊地发现 4:
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 开发工作流程都一团糟。 None 我的 virtualenvs 工作,因为显然不应该同时使用 conda 和 virtualenv。我尝试从 requirements.txt
文件创建 conda 环境。我在 django 中使用的一个包是 "markdown_deux",它在 Conda 存储库中不可用。我研究了构建它的方法,但是创建食谱需要很多努力(创建 YAML 文件等)
有没有人为此找到一个好的折衷方案?我正在考虑返回到一般用途的自制版本,并编写一个别名以根据需要将路径更改回 conda 版本。虽然这也需要跟踪我现在使用的是哪一个..
我的所有项目(数据科学,一些网络开发)都使用 Homebrew Python。
Conda 没什么特别的,您可以通过组合 pip
和 Homebrew 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。
我发现最好的工作流程:
使用
conda
进行虚拟环境管理。 从不 使用/安装到系统 python。使用
pip
安装到活动虚拟环境,就像正常一样。使用
conda
包仅用于难以安装的软件,例如Qt。
自动化/附加功能
- 使用
autoenv
或direnv
并通过将 conda 命令放入.env
或.envsrc
文件进入目录时自动激活虚拟环境。