【问题标题】:Could not install packages due to an EnvironmentError: [Errno 13]由于 EnvironmentError 无法安装软件包:[Errno 13]
【发布时间】:2019-03-27 17:16:56
【问题描述】:

在我的 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.

所以我想用给定的命令更新 pip 但我得到了一个错误:

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。

【问题讨论】:

标签: python macos pip


【解决方案1】:

我更改了我正在使用的 venv 的权限,因为虚拟环境子文件夹中缺少权限。

sudo chmod -R a+rwx testenv

然后我可以从 codium 中安装一个自动推荐的包。

【讨论】:

    【解决方案2】:

    要查看是否真的是权限问题,请运行以下命令来安装名为 xxx 的包。

    pip install --user xxx
    

    例如:安装包bcrypt运行,

    pip install --user bcrypt
    

    【讨论】:

      【解决方案3】:

      我正在运行python3 -m pip install xxx

      ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/3.8'
      Consider using the `--user` option or check the permissions.
      

      /Library/Python/3.8 表示我使用的python3 是系统范围的python,因此存在权限问题。涉及--user 标志和虚拟环境的解决方案都可以解决这个问题。

      对我来说,用brew最方便:

      brew install python@3.8
      brew link python@3.8
      which python3
      

      之后python3 -m pip install xxx 成功没有问题。请注意,不应使用 sudo。

      原理是一样的:您正在开始一个特权较少的新环境。这意味着您需要从旧环境中获得的所有软件包都需要在这个新环境中重新安装。

      如果您不想重新安装所有内容,我想使用 --user 标志。

      【讨论】:

        【解决方案4】:

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

        sudo pip install --upgrade pip
        

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

        关于 python 尝试像这样将 pip 作为可执行文件运行:

        python3.6 -m pip install <package>
        

        【讨论】:

        • 我不完全确定,但是以 root 权限运行这种命令通常不是最好的主意:一旦你使用 sudo,用户将从“你”变为“root”,并且可能导致不想要的结果。例如,库可以安装在 /home/root 而不是 /home/yourusername 中。此外,将创建与 root 用户/组关联的文件。仅当命令应将文件保存在 /usr/local/bin 等系统文件夹中时才需要 Sudo ! ;)
        • 是的,这是真的。我对此添加了评论
        【解决方案5】:

        当我尝试安装 opencv-python 包时,我也会遇到这种情况:

        我可以用命令行修复它

        python3 -m pip install {name of package} --user
        

        当我尝试安装上述软件包时,命令变为:

        python3 -m pip install opencv-python --user
        

        导致:

        【讨论】:

          【解决方案6】:

          适用于 MacO 和 Unix

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

          sudo pip install --upgrade pip

          建议您不要直接这样做 - 请参阅this post

          【讨论】:

          • 这对Windows用户一点帮助都没有,而且由于Windows操作权限,这个错误在Windows用户中比较常见。此外,命令应包含在代码块中,如果不是,则难以阅读
          【解决方案7】:

          在 Mac 上,没有 3.7 目录或目录 3.7root 所有。所以,我删除了那个目录,由当前用户创建一个新目录,然后把它移到那里。然后安装完成,没有错误。

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

          【讨论】:

            【解决方案8】:

            我在具有所有正确权限的 Linux 上安装的 NTFS 分区上的 venv 中遇到了类似的问题。 确保 pip 运行 --ignore-installed 解决了它,即:

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

            【讨论】:

              【解决方案9】:

              如果你想使用python3+来安装你需要使用的包pip3 install package_name

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

              pip3 install package_name --user
              

              编辑:

              对于 Python 中的任何项目,强烈建议使用 Virtual enviroment,这是一个工具,它通过为不同项目创建隔离的 Python 虚拟环境来帮助保持不同项目所需的依赖项。 p>

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

              virtualenv enviroment_name -p python3
              

              然后您只需激活它即可:

              source enviroment_name/bin/activate
              

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

              pip install package_name
              

              【讨论】:

              • 我这样做了,但我仍然遇到问题。我安装了烧瓶,但在我的 venv 中仍然找不到它。我能做什么?
              • 试试 virtualenv -p python3.8 enviroment_name 用法:virtualenv [OPTIONS] DEST_DIR
              • 完美运行。谢谢!
              • @Leonard 我遇到了同样的问题,它没有安装在 venv 中。非常令人沮丧,您是如何解决的?
              • @GonzaloGarcia 不,只是普通的 python。我没想到这么简单的任务会导致这么严重的问题
              【解决方案10】:

              我已经尝试了这里发布的所有建议,但我仍然得到 errno 13,

              我使用的是 Windows,我的 python 版本是 3.7.3

              在尝试解决了 5 个小时后,这一步对我有用:

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

              【讨论】:

                【解决方案11】:

                我在尝试安装软件包(flask-classful)时遇到了同样的错误。
                我犯了以 root 身份安装 anaconda 的错误。我更改了安装的anaconda文件夹的所有权,我可以成功安装包。

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

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

                这里的owner是你的用户名,group是组名。

                【讨论】:

                  【解决方案12】:

                  我为 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
                  

                  给我一​​个错误

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

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

                  python2.7 -m pip install pyspark --user
                  

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

                  【讨论】:

                    【解决方案13】:

                    只需sudo pip install packagename

                    【讨论】:

                      【解决方案14】:

                      试试下面这个命令行MacOS来检查用户的权限。

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

                      【讨论】:

                        【解决方案15】:

                        这对我有用:

                         python3 -m venv env
                         source ./env/bin/activate
                         python -m pip install package
                        

                        (来自 Github:https://github.com/googlesamples/assistant-sdk-python/issues/236

                        【讨论】:

                          【解决方案16】:

                          我犯了同样的错误,然后我意识到我已经以 root 用户身份创建了我的虚拟环境。它被写保护了,所以请检查你的虚拟环境是否被写保护。做一个新的venv再试一次

                          【讨论】:

                            【解决方案17】:

                            我在安装numpypip install numpy 时遇到了同样的问题。

                            然后我尝试了

                            sudo -H pip3 install --upgrade pip

                            sudo -H pip3 install numpy

                            对我来说效果很好。

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

                            【讨论】:

                            • 这对我也有用
                            【解决方案18】:

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

                            然后你做了一个pip install whatever,它依赖于另一件事。

                            所以要修复它,请访问 /Library/Python/2.7/site-packages/... 并找到具有 root 或非您的用户权限的目录,然后删除然后重新安装这些包,或者只是强制所有权给应该有权访问的用户。

                            【讨论】:

                            • 简单而有效。使用 $whoami 知道您当前是哪个用户然后 $sudo chown username /Library/Python/2.7/site-packages/ 然后 pip install 不管...您可能必须递归使用 chown
                            【解决方案19】:

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

                            试试:

                                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
                            

                            【讨论】:

                              猜你喜欢
                              • 2019-06-07
                              • 2019-01-08
                              • 1970-01-01
                              • 1970-01-01
                              • 2019-02-27
                              • 1970-01-01
                              • 2019-05-21
                              • 2021-08-09
                              • 2023-04-03
                              相关资源
                              最近更新 更多