mts*_*lmn 5 python homebrew numpy matplotlib scipy
今天我决定手动安装python和scipy堆栈,而不是像以前那样使用Anaconda(或Canopy).我在我的mac上使用自制软件,并通过自制软件安装了python2和python3(2.7和3.6).但阅读文档,有多种方法可以安装scipy堆栈,我想知道它们之间的区别.我已经独立测试了它们,它们都有效.
从Homebrew文档:
python2 -m pip install numpy scipy matplotlib
python3 -m pip install numpy scipy matplotlib
这些是Matplotlib安装文档列出的有关如何通过自制软件安装matplotlib的两个命令.为什么这分别使用pip(系统Python 2.7.x的pip)而不是pip2和pip3?是因为你先调用python2/python3吗?
然而,SciPy的文档使用自制安装时,这些模块是不同的:
brew tap homebrew/science && brew install numpy scipy matplotlib
(注:在matplotlib公式位于自制软件/理科库,这就是为什么你需要使用brew tap
.)
最后,从命令行读出安装python2和python3通过homebrew:
pip2 install numpy scipy matplotlib
pip3 install numpy scipy matplotlib
这是基于以下读数:
Pip and setuptools have been installed. To update them
pip2 install --upgrade pip setuptools
You can install Python packages with
pip2 install <package>
They will install into the site-package directory
/usr/local/lib/python2.7/site-packages
See: https://docs.brew.sh/Homebrew-and-Python.html
...
Pip, setuptools, and wheel have been installed. To update them
pip3 install --upgrade pip setuptools wheel
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.6/site-packages
See: https://docs.brew.sh/Homebrew-and-Python.html
Run Code Online (Sandbox Code Playgroud)
因此,在四个文档源之间,使用自制软件时有三种不同的方法来安装scipy,它们都可以工作; 但每种方法各有不同,应该优先考虑?
从我所知道的,第一个和第三个方法,它们都调用pip(pip2/pip3),在功能上是等价的 - 都调用Homebrew的Python XXX的pip - 但是一个隐式地,另一个明确地调用.我认为这意味着两种方法都以轮子的形式从pip安装预先构建的二进制包.对于第二种方法,我认为它会为这些软件包安装自制软件的自己的公式(即由homebrew在它的存储库中单独维护).
如果这是真的,那么我假设你应该使用第二种方法,如果你使用的是由homebrew维护的python版本(即通过brew install python
或安装python3
).我的理由是,如果你以后决定通过自制软件安装另一个公式,它有任何scipy堆栈作为依赖项,它将从homebrew的存储库再次安装这些模块,如果你以前使用pip安装它们.
如上所述,我不确定我的理解是否正确,而且我无法找到任何答案,因此任何见解或确认都将受到赞赏.
您的分析似乎是正确的:变体 1 和 3 将从 python 包索引 (PyPI) 安装 numpy/scipy 并将使用预构建的轮子(如果适用于您的平台,它们很可能是)。变体 2 安装冲泡配方。
正如 @Evhz 所提到的,numpy 和 scipy 的 conda 包使用 Intel Math Kernel 库,与从 PyPI 或 brew 安装的包相比,它可以提供显着的加速(不仅仅是在 Intel 处理器上),这两个包都与OpenBLAS链接。
关于选择哪种方法:这并不完全简单。
brew
管理 python 解释器和 python 包似乎是一致的。pip
无论如何你最终都需要混合使用。conda
,它将管理解释器和 python 包。pip
再次混合。最后,没有完美的解决方案,但只要您明智地做出决定,就不太可能遇到问题。
归档时间: |
|
查看次数: |
3369 次 |
最近记录: |