由于环境错误而无法安装软件包:[Errno 13]


106

在我的MacOS Mojave终端中,我想使用pip安装python软件包。最后说:

You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

所以我想用给定的命令更新点子,但出现错误:

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: 
'/Library/Python/2.7/site-packages/pip-18.0-py2.7.egg/EGG-INFO/PKG-INFO'
Consider using the `--user` option or check the permissions.

我真的不知道该怎么办。我也意识到它在错误消息中说Python 2.7,但是我已经并且只想使用python 3。


6
您是否读过:“考虑使用该--user选项或检查权限”。
克劳斯D.18年

我只是试过你是对的!我以为会检查权限而不是授予权限。谢谢!
阿德勒

2
要为python3安装软件包,您需要使用pip3要升级pip,请在遇到权限错误时以sudo的身份运行。
BoboDarph


Answers:


166

如果要使用python3 +安装软件包,则需要使用pip3 install package_name

要解决errno 13,您必须--user在末尾添加

pip3 install package_name --user

编辑:

对于python中的任何项目,强烈建议Virtual enviroment上工作,该工具可通过为它们创建隔离的python虚拟环境来帮助将不同项目所需的依赖项分开。

为了使用python3 +创建一个,您必须使用以下命令:

virtualenv enviroment_name -p python3

然后只需激活它就可以对其进行处理:

source enviroment_name/bin/activate

激活虚拟环境后,虚拟环境的名称将显示在终端的左侧。这将使您知道虚拟环境当前处于活动状态。现在,您只需使用即可在该虚拟环境中安装与项目相关的依赖项pip

pip install package_name

2
我这样做了,但仍然遇到麻烦。我安装了flask,但是在venv中仍然找不到。我能做什么?
伦纳德

尝试virtualenv -p python3.8 enviroment_name用法:virtualenv [选项] DEST_DIR
Tommy Gibbons

1
完美运作。谢谢!
哈迪克·佛法

23

关于权限命令,请尝试在终端命令前使用sudo:

sudo pip install --upgrade pip

Sudo允许您使用超级用户的特权运行命令,并将为全局,系统范围的Python安装安装软件包。理想情况下,您应该为正在处理的项目创建一个虚拟环境。看看这个

关于python尝试将pip作为可执行文件运行,如下所示:

python3.6 -m pip install <package>

我不太确定,但是使用root权限运行这种命令通常不是最好的主意:使用sudo后,用户将从“ you”更改为“ root”,这可能会导致不良结果。例如,可以将库安装在/ home / root中而不是/ home / yourusername中。另外,将与根用户/组关联创建文件。仅当命令应将文件保存在系统文件夹(例如/ usr / local / bin)中时才需要Sudo!;)
funder7

1
是的,这是真的。我对此添加了评论
多米尼克·保罗

5

我犯了同样的错误,然后意识到我已经以root用户身份创建了虚拟环境。它已被写保护,因此请检查您的虚拟环境是否被写保护。制作新的venv,然后重试


4

尝试安装软件包时(烧瓶类),我遇到了相同的错误。
我犯了以root身份安装anaconda的错误。我更改了已安装的anaconda文件夹的所有权,并且可以成功安装该软件包。

使用chown带选项的命令-R来递归地更改已安装的anaconda文件夹的所有权,如下所示:

chown -R owner:group /path/to/anaconda

在这里所有者是您的用户名,组是组名。


3

答案在错误消息中。过去,您或某个进程执行sudo pip,并且导致该目录下的某些目录/Library/Python/2.7/site-packages/...具有权限,导致当前用户无法访问该目录。

然后您做了一个pip install whatever依赖另一件事的。

因此,要对其进行修复,请访问/Library/Python/2.7/site-packages / ...并找到具有root或not-your-user权限的目录,然后删除然后重新安装这些软件包,或者只是强制对用户拥有所有权应该接触的人。


1
简单而有效。使用$ whoami知道您当前是哪个用户,然后$ sudo chown用户名/Library/Python/2.7/site-packages/然后pip安装任何内容...您可能需要递归使用chown
Sunil Kumar,

3

使用进行安装时numpy,我遇到了同样的问题pip install numpy

然后我尝试

sudo -H pip3 install --upgrade pip

sudo -H pip3 install numpy

对我来说效果很好。

说明:-H带(HOME)选项sudo设置HOME环境变量设置为目标用户(root默认情况下)的主目录。默认情况下,sudo不会修改HOME。


3

对于MacO和Unix

只需在命令中添加sudo即可,因为它将以超级用户身份运行。

sudo pip install --upgrade pip

建议您不要直接这样做-请参阅这篇文章


1
这根本对Windows用户没有帮助,由于Windows操作权限,此错误在Windows用户中更常见。另外,命令应包含在代码块中,否则它们将变得难以阅读
logos_164


1

我已经尝试过此处发布的所有建议,但仍收到errno 13

我正在使用Windows,而我的python版本是3.7.3

经过5小时的尝试解决后,此步骤对我有用:

我尝试以管理员身份运行以打开命令提示符


0

我也遇到了同样的问题,我尝试了许多不同的命令行,这对我有用:

尝试:

    conda install py-xgboost

那就是我得到的:

Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /home/simplonco/anaconda3

  added / updated specs:
    - py-xgboost


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _py-xgboost-mutex-2.0      |            cpu_0           9 KB
    ca-certificates-2019.1.23  |                0         126 KB
    certifi-2018.11.29         |           py37_0         146 KB
    conda-4.6.2                |           py37_0         1.7 MB
    libxgboost-0.80            |       he6710b0_0         3.7 MB
    mkl-2019.1                 |              144       204.6 MB
    mkl_fft-1.0.10             |   py37ha843d7b_0         169 KB
    mkl_random-1.0.2           |   py37hd81dba3_0         405 KB
    numpy-1.15.4               |   py37h7e9f1db_0          47 KB
    numpy-base-1.15.4          |   py37hde5b4d6_0         4.2 MB
    py-xgboost-0.80            |   py37he6710b0_0         1.7 MB
    scikit-learn-0.20.2        |   py37hd81dba3_0         5.7 MB
    scipy-1.2.0                |   py37h7c811a0_0        17.7 MB
    ------------------------------------------------------------
                                           Total:       240.0 MB

The following NEW packages will be INSTALLED:

  _py-xgboost-mutex  pkgs/main/linux-64::_py-xgboost-mutex-2.0-cpu_0
  libxgboost         pkgs/main/linux-64::libxgboost-0.80-he6710b0_0
  py-xgboost         pkgs/main/linux-64::py-xgboost-0.80-py37he6710b0_0

The following packages will be UPDATED:

  ca-certificates     anaconda::ca-certificates-2018.12.5-0 --> pkgs/main::ca-certificates-2019.1.23-0
  mkl                                            2019.0-118 --> 2019.1-144
  mkl_fft                              1.0.4-py37h4414c95_1 --> 1.0.10-py37ha843d7b_0
  mkl_random                           1.0.1-py37h4414c95_1 --> 1.0.2-py37hd81dba3_0
  numpy                               1.15.1-py37h1d66e8a_0 --> 1.15.4-py37h7e9f1db_0
  numpy-base                          1.15.1-py37h81de0dd_0 --> 1.15.4-py37hde5b4d6_0
  scikit-learn                        0.19.2-py37h4989274_0 --> 0.20.2-py37hd81dba3_0
  scipy                                1.1.0-py37hfa4b5c9_1 --> 1.2.0-py37h7c811a0_0

The following packages will be SUPERSEDED by a higher-priority channel:

  certifi                                          anaconda --> pkgs/main
  conda                                            anaconda --> pkgs/main
  openssl                anaconda::openssl-1.1.1-h7b6447c_0 --> pkgs/main::openssl-1.1.1a-h7b6447c_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
libxgboost-0.80      | 3.7 MB    | ##################################### | 100% 
mkl_random-1.0.2     | 405 KB    | ##################################### | 100% 
certifi-2018.11.29   | 146 KB    | ##################################### | 100% 
ca-certificates-2019 | 126 KB    | ##################################### | 100% 
conda-4.6.2          | 1.7 MB    | ##################################### | 100% 
mkl-2019.1           | 204.6 MB  | ##################################### | 100% 
mkl_fft-1.0.10       | 169 KB    | ##################################### | 100% 
numpy-1.15.4         | 47 KB     | ##################################### | 100% 
scipy-1.2.0          | 17.7 MB   | ##################################### | 100% 
scikit-learn-0.20.2  | 5.7 MB    | ##################################### | 100% 
py-xgboost-0.80      | 1.7 MB    | ##################################### | 100% 
_py-xgboost-mutex-2. | 9 KB      | ##################################### | 100% 
numpy-base-1.15.4    | 4.2 MB    | ##################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

0

MacOS上尝试以下命令行,以检查用户的权限。

$ sudo python -m pip install --user --upgrade pip

0

我为Python 3安装了anaconda。我的mac也有Python2。

python --version

给我

的Python 3.7.3

python2.7 --version

给我

Python 2.7.10

我想在python2中安装pyspark软件包,因为它已经安装在python3中。

python2.7 -m pip install pyspark

给我一个错误

由于环境错误而无法安装软件包:[Errno 13]权限被拒绝:'/Library/Python/2.7/site-packages/pyspark'考虑使用该--user选项或检查权限。

下面的命令解决了它。谢谢上帝,我不必做任何配置更改。

python2.7 -m pip install pyspark --user

收集pyspark的要求已经满足:/Library/Python/2.7/site-packages中的py4j == 0.10.7(来自pyspark)(0.10.7)安装收集的软件包:pyspark成功安装pyspark-2.4.4您正在使用pip版本18.1。 ,但是版本19.3.1可用。您应该考虑通过“ pip install --upgrade pip”命令进行升级。


0

我在具有所有正确权限的linux上已安装NTFS分区上的venv中遇到了类似的麻烦。确保使用--ignore-installed运行了pip可以解决该问题,即:

python -m pip install --upgrade --ignore-installed


0

在Mac上,没有3.7目录,或者目录3.7归拥有root。因此,我删除了该目录,由当前用户创建了一个新目录,并将其移至该目录。然后安装完成,没有错误。

sudo rm -rf /Library/Python/3.7
mkdir 3.7
sudo mv 3.7 /Library/Python
ll /Library/Python/
pip3 install numpy


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.