由于 psutil 包的遗留安装错误,无法安装 Jupyter

我之前在 conda 环境中使用 pip 下载 tensorflow 后遇到环境不一致,经过几个小时的挫折后,决定删除 anaconda/miniconda 和 python 并从头开始将是让 python 再次工作的最佳选择(The不一致导致加载其他模块(如 numpy 等)时出现大量问题。

直接从 https://www.python.org/downloads/macos/ 下载 Python 版本 3.9.10 后,我想看看是否可以在 VS Code 的 Jupyter notebook 中再次开始使用 Python。当我尝试在 python 块中运行一个简单的 print('hello world') 时,我(不出所料)得到以下错误:

Jupyter 无法启动。尝试定位 jupyter 时出错:使用“Python 3.9.10 64 位”运行单元需要笔记本包。运行以下命令将“jupyter and notebook”安装到 Python 环境中。命令:'python -m pip install jupyter notebook -U'

我非常期待这个错误,因为我知道在删除 Anaconda 和 Python 时我已经删除了所有包。

但是,当我尝试在终端中运行 python -m pip install jupyter notebook -U 时,最终会出现以下错误:

xcrun:错误:无效的活动开发者路径(/Library/Developer/CommandLineTools),在:/Library/Developer/CommandLineTools/usr/bin/xcrun 错误:命令“/usr/bin/gcc”失败,退出代码 1 [输出结束]

注意:此错误源自子进程,可能不是 pip 的问题。错误:遗留安装失败

× 尝试安装包时遇到错误。 ╰─> psutil

注意:这是上面提到的包的问题,​​而不是 pip。

非常感谢任何帮助或见解!如果这是有用的信息,我在 MacOS (M1) 上。

stack overflow Unable to Install Jupyter due to legacy-install-error with psutil package
原文答案

答案:

作者头像

问题似乎出在 MacOSX 命令行工具附带的 python3 发行版上。好吧,在执行了这些步骤之后,至少同样的错误消失了。所以,为了解决这个问题,我使用 Homebrew 安装了 python3.9(我想你可以将 3.9 更改为你想要的版本,例如 3.8 或 3.10)。

  1. 安装 Homebrew(检查是否已经安装,只需在终端中输入 brew --version ):

    
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2.安装python3.9

brew install python@3.9


3. 创建你的虚拟环境

python3.9 -m venv myvenv


4. 使用  `source myvenv/bin/activate`  激活虚拟环境

5. 最后,使用安装 Jupyter

(myvenv) pip install jupyter notebook

作者头像

在 MacOS 12.5 M2 芯片上安装 Jupyter 笔记本时,我遇到了同样的问题。事实证明,该错误是由于我的 Mac 上没有 GCC 来运行安装 psutil 包的轮子引起的,因为出于某种原因,我从 Mac 中删除了我的 XCode。所以我从 AppStore 安装了 XCode 并在安装后打开 XCode 以同意其条款和条件。在 Xcode 完成设置过程后,我再次尝试 pip install jupyter 并且效果很好。

作者头像

就我而言,我刚刚打开了 XCode,接受了条款和建议的安装,然后尝试再次安装 jupyter,它成功了!

作者头像

It seems to be very particular about the version of python installed. I set up a fresh installation on a new box this morning and put 3.11 on there. pip install jupyterlabs gave me the same error as you got. I then uninstalled python and installed an earlier version, and now it works.

PS the older version that worked for me is 3.10.8