如何修复使用pip安装watchdog时出现“ERROR: Command errored out with exit status 1:”错误

6
我正在重新学习Python语言,但在设置环境时遇到了困难。
我的操作系统是Mac Mojave (10.14),系统自带python 2.7.10版本,我使用homebrew安装了python 3.7.4,homebrew版本为2.1.14,pip版本为19.2.3。
当我尝试使用pip安装watchdog时,出现了错误提示。我认为这个错误是由于pip尝试安装到Python 2.7文件夹(权限不足)而非Python 3文件夹所导致的。
我已经尝试卸载、重新安装和升级Python 3,但还是无法解决问题。
当我使用pip尝试安装watchdog时,遇到了以下错误提示:
 1 error generated.
    Error compiling module, falling back to pure Python
    running install_lib
    creating /Library/Python/2.7/site-packages/yaml
    error: could not create '/Library/Python/2.7/site-packages/yaml': Permission denied
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/4d/spq3r5t92654252ql994_l540000gr/T/pip-install-nqmq6O/PyYAML/setup.py'"'"'; __file__='"'"'/private/var/folders/4d/spq3r5t92654252ql994_l540000gr/T/pip-install-nqmq6O/PyYAML/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/4d/spq3r5t92654252ql994_l540000gr/T/pip-record-g8Qjzh/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.

1
尝试运行 sudo -H python3 -m pip install ... - Selcuk
3
通常情况下,除非你确切知道你在做什么,否则使用 sudo 安装 pip 不是一个好主意,因为这可能会损坏操作系统管理的软件包或者造成其他伤害(也可能会以 root 权限执行任意软件包代码 (setup.py))。我肯定不会轻易地给出这个建议。 - Chris Hunt
2个回答

11

升级setuptools和pip。您可以通过运行以下命令来完成:

pip install -U pip setuptools

救命稻草。这似乎对我有用。 - ArduinoBen

8
当你执行pip install时,使用哪个pip取决于诸多因素,如你的PATH、shell、shell配置和操作系统。
最好的方法是使用<python> -m pip来调用pip,其中<python>是你想要为之安装软件包的Python版本。例如,如果你使用python3来安装软件包,则运行python3 -m pip
如果你正在运行python3 -m pip install ...并遇到权限错误,则可以执行python3 -m pip install --user ...,它将安装到你的用户site-packages目录,并在你以用户身份执行python3时可用。

您的建议使用python3命令来强制pip使用正确的版本解决了问题,谢谢。看起来watchdog包已经安装,但在我的Sublime Text环境(Tools> Build)中没有正确引用,然而,当我在终端shell中运行脚本时,脚本执行成功。 - chronowalker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接