使用 macOS Monterey 在 M1 macbook air 上安装 python3 机器学习包(如 jupyter、tensorflow 和 keras)的最佳方法 [关闭]

青葱年少 tensorflow 791

原文标题Best way to install python3 machine learning packages like jupyter, tensorflow and keras on M1 macbook air with macOS Monterey [closed]

我正在尝试在具有以下规格的新 macbook air 上安装常见的机器学习和数据科学 python 工具:

MacBook Air(M1,2020)
芯片苹果M1
内存 8 GB
macOS 蒙特雷版本 12.0.1

我的主要技术技能是作为一名数据科学家,我对管理 python ML 包安装的复杂性相对不舒服。在一些在线资源中推荐使用 pip、anaconda、homebrew 等工具,而在其他资源中则不鼓励使用。结果我装了一堆我不是很了解的东西,仍然无法安装tensorflow2。

我怀疑我可能应该卸载我自己安装的所有东西并重新开始,但我不知道该怎么做(除了重新映像我的机器,这绝对是最后的手段)。

我的目标是:
(1) 达到我可以在 jupyter notebook 中使用 keras 拟合机器学习模型的程度
(2) 没有将我所有的 python 包安装在完全有问题的地方。
(3) 我想在不成为 macOS unix 环境中包管理专家的情况下实现这一目标,因为我宁愿将我的技术注意力集中在提高我的机器学习能力上。

到目前为止,我曾多次尝试 pip3 和其他时间尝试 brew 来安装东西。以下是关于我目前的 python 安装的意大利面条混乱的一些事实:

$ which python3
/opt/homebrew/bin/python3

但是,根据这个tensorflow安装教程,我认为这个命令应该返回/usr/local/bin/python3:https://pyimagesearch.com/2019/12/09/how-to-install-tensorflow-2-0 -on-macos/

这是安装其他相关软件的位置:

$ which python
/usr/bin/python

$ which python2
/usr/bin/python2

$ which pip3
/opt/homebrew/bin/pip3

$ pip3 show jupyter
Name: jupyter
Version: 1.0.0
Summary: Jupyter metapackage. Install all the Jupyter components in one go.
Home-page: http://jupyter.org
Author: Jupyter Development Team
Author-email: jupyter@googlegroups.org
License: BSD
Location: /opt/homebrew/lib/python3.9/site-packages
Requires: ipykernel, ipywidgets, jupyter-console, nbconvert, notebook, qtconsole
Required-by: 

$ pip3 show pip
Name: pip
Version: 22.0.4
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: distutils-sig@python.org
License: MIT
Location: /opt/homebrew/lib/python3.9/site-packages
Requires: 
Required-by: 

$ pip3 show keras
Name: keras
Version: 2.8.0
Summary: Deep learning for humans.
Home-page: https://keras.io/
Author: Keras team
Author-email: keras-users@googlegroups.com
License: Apache 2.0
Location: /opt/homebrew/lib/python3.9/site-packages
Requires: 
Required-by: 

$ pip3 show tensorflow
WARNING: Package(s) not found: tensorflow

尝试安装 tensorflow 会引发一个错误,经过数小时的尝试后我似乎无法调试:

$ pip3 install tensorflow
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
ERROR: Could not find a version that satisfies the requirement tensorflow (from versions: none)
ERROR: No matching distribution found for tensorflow

此外,在遵循互联网上的建议时,我一直在盲目地编辑我的 .zshrc 设置,我认为这导致了混乱:

$ cat ~/.zshrc

export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
export PATH="/usr/local/opt/python@2/libexec/bin:$PATH"
export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.8/bin"

# Homebrew
export PATH=/usr/local/bin:$PATH
export PATH=/opt/homebrew/bin:$PATH

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

我不太明白这些导出 PATH 语句在做什么。我添加的一些内容现在似乎不起作用。例如,/Library/Frameworks/Python.framework 不存在:

$ ls /Library/Frameworks/Python.framework
ls: /Library/Frameworks/Python.framework: No such file or directory

上面的相同教程(以及其他教程)建议我创建一个虚拟环境(尽管我不明白为什么)。我用这个命令做到了:

pip3 install virtualenv virtualenvwrapper

然后按照指示修改了我的 .zshrc 文件,但是这部分文件会导致问题:

$ source ~/.zshrc
/Users/me/.zshrc:source:18: no such file or directory: /usr/local/bin/virtualenvwrapper.sh

这个shell脚本似乎也在一个意想不到的地方:

$ which virtualenvwrapper.sh
/opt/homebrew/bin/virtualenvwrapper.sh

这是我一路安装的一堆其他东西,我不确定是否应该删除其中的任何一个:

$ pip3 list
Package               Version
--------------------- -----------
absl-py               1.0.0
appnope               0.1.3
argon2-cffi           21.3.0
argon2-cffi-bindings  21.2.0
astor                 0.8.1
asttokens             2.0.5
attrs                 21.4.0
backcall              0.2.0
beautifulsoup4        4.11.1
bleach                1.5.0
cffi                  1.15.0
cmdstanpy             0.9.5
convertdate           2.4.0
cycler                0.11.0
Cython                0.29.28
DateTime              4.4
debugpy               1.6.0
decorator             5.1.1
defusedxml            0.7.1
distlib               0.3.4
entrypoints           0.4
ephem                 4.1.3
executing             0.8.3
fastjsonschema        2.15.3
fbprophet             0.7.1
filelock              3.6.0
fonttools             4.32.0
gast                  0.5.3
grpcio                1.44.0
hijri-converter       2.2.3
holidays              0.13
html5lib              0.9999999
importlib-metadata    4.11.3
ipykernel             6.13.0
ipython               8.2.0
ipython-genutils      0.2.0
ipywidgets            7.7.0
jedi                  0.18.1
Jinja2                3.1.1
jsonschema            4.4.0
jupyter               1.0.0
jupyter-client        7.2.2
jupyter-console       6.4.3
jupyter-core          4.9.2
jupyterlab-pygments   0.2.2
jupyterlab-widgets    1.1.0
keras                 2.8.0
kiwisolver            1.4.2
korean-lunar-calendar 0.2.1
LunarCalendar         0.0.9
Markdown              3.3.6
MarkupSafe            2.1.1
matplotlib            3.5.1
matplotlib-inline     0.1.3
mistune               0.8.4
nbclient              0.6.0
nbconvert             6.5.0
nbformat              5.3.0
nest-asyncio          1.5.5
notebook              6.4.10
numpy                 1.22.3
packaging             21.3
pandas                1.4.2
pandocfilters         1.5.0
parso                 0.8.3
pbr                   5.8.1
pexpect               4.8.0
pickleshare           0.7.5
Pillow                9.1.0
pip                   22.0.4
platformdirs          2.5.1
prometheus-client     0.14.1
prompt-toolkit        3.0.29
psutil                5.9.0
ptyprocess            0.7.0
pure-eval             0.2.2
pycparser             2.21
Pygments              2.11.2
PyMeeus               0.5.11
pyparsing             3.0.8
pyrsistent            0.18.1
pystan                2.19.1.1
python-dateutil       2.8.2
pytz                  2022.1
pyzmq                 22.3.0
qtconsole             5.3.0
QtPy                  2.0.1
Send2Trash            1.8.0
setuptools            60.10.0
setuptools-git        1.2
six                   1.16.0
soupsieve             2.3.2.post1
stack-data            0.2.0
stevedore             3.5.0
TBB                   0.2
tensorboard           1.8.0
termcolor             1.1.0
terminado             0.13.3
tinycss2              1.1.1
tornado               6.1
tqdm                  4.64.0
traitlets             5.1.1
virtualenv            20.14.1
virtualenv-clone      0.5.7
virtualenvwrapper     4.8.4
wcwidth               0.2.5
webencodings          0.5.1
Werkzeug              2.1.1
wheel                 0.37.1
widgetsnbextension    3.6.0
zipp                  3.8.0
zope.interface        5.4.0

此外,应安装 xcode:

$ xcode-select -p
/Library/Developer/CommandLineTools

我能做些什么来清理这个烂摊子?事实证明,这比预期的要难得多。

原文链接:https://stackoverflow.com//questions/71903529/best-way-to-install-python3-machine-learning-packages-like-jupyter-tensorflow-a

回复

我来回复
  • frelk的头像
    frelk 评论

    由于人们对我的问题投了反对票,我认为吸引答案会更难。对于那些处于类似情况的人,这是我所学到的:

    安装 python 包查看多种方法(pip、homebrew、anaconda 等)可能会导致问题:

    • 示例1
    • 示例2
    • 示例3

    MacBook Air (M1, 2020) 预装了一些 python 软件。操作系统使用它,所以你真的不想把它弄乱或卸载它。请参阅此处讨论的 /usr/bin/python 中的 python 安装(您的操作系统需要)与 /usr/local/bin/python* 中的安装(可以卸载)。

    假设你使用 pip 或 pip3 安装了一堆 python 包,并且你想卸载那些东西(可能和我一样,你想“从头开始”,或者你担心这些安装会与使用 homebrew 安装的包冲突) .卸载 pip 不会卸载 pip 安装的软件包(请参阅此处)。要卸载您使用 pip 安装的软件包,请按照这些说明进行操作。

    假设您想卸载 homebrew 以及使用 homebrew 安装的所有 python 包,您可以按照本指南开始。

    请注意,如果您的 macbook 有 M1 芯片,homebrew 会将所有内容安装在 /opt/homebrew 中,而在其他 macbook 上它将将所有内容安装在 /usr/local 中(请参阅此处的讨论)。卸载说明不会卸载 /opt/homebrew 中的所有内容。这些残留文件可以按如下方式安装(参见此处):

    $ sudo rm -rf /opt/homebrew/
    

    从这里开始,您可以从头开始尝试通过一些新策略安装所有机器学习和数据科学 python 包。有很多相互矛盾的建议:

    • 比如本教程会建议你使用 homebrew 安装 tensorflow 2.0
    • 相比之下,这个建议您使用 miniforge(即 conda)。
    • 该文档建议使用 pip,但我无法开始工作。

    顺便说一句,在使用自制软件安装软件包后,互联网建议我使用以下行(示例)修改我的 .zshrc 时遇到问题:

    export WORKON_HOME=$HOME/.virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
    source /usr/local/bin/virtualenvwrapper.sh
    

    如上所述,这假设 homebrew 正在 /usr/local 而不是 /opt/homebrew 中安装东西。如果像我一样,homebrew 将您的文件安装在 /opt/homebrew 中,您将需要按照此处的文档正确修改您的 .zshrc 文件。

    2年前 0条评论