目录
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied
由于环境错误而无法安装软件包:[Errno 13]权限被拒绝
当我们尝试在没有必要权限的文件夹中安装软件包时,会出现错误“由于环境错误而无法安装软件包:[Errno 13]权限被拒绝”。
要解决该错误,请运行带有选项的命令--user
,例如
pip install numpy --user
。
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib/python2.7/dist-packages' Consider using the --user option or check the permissions.
使用--user
标志来解决错误
解决该错误的一种方法是运行pip install
带有--user
选项的命令。
pip install <package-name> --user # 👇️ for Python 3 user pip3 pip3 install <package-name> --user python -m pip install <package-name> --user python3 -m pip install <package-name> --user # 👇️ py alias for Windows py -m pip install <package-name> --user
确保将<package-name>
占位符替换为包的实际名称,例如pip install numpy --user
。
该--user
选项将包安装在用户的主目录中。
但是,--user
如果您有活动的虚拟环境,该选项将不起作用。
使用提升的权限运行安装命令
解决该错误的另一种方法是通过在命令前面加上sudo
.
sudo pip install <package-name> --user sudo pip3 install <package-name> --user sudo python -m pip install <package-name> --user sudo python3 -m pip install <package-name> --user
创建虚拟环境
或者,您可以创建虚拟环境。
- 创建虚拟环境。
- 激活虚拟环境。
pip install
在虚拟环境处于活动状态时运行命令。
# 👇️ use correct version of Python when creating VENV python3 -m venv venv # 👇️ activate on Unix or MacOS source venv/bin/activate # 👇️ activate on Windows (cmd.exe) venv\Scripts\activate.bat # 👇️ activate on Windows (PowerShell) venv\Scripts\Activate.ps1 # 👇️ install the specific package in the virtual environment pip install numpy
确保根据您的操作系统和 shell 使用正确的命令来激活虚拟环境。
您的虚拟环境将使用用于创建它的 Python 版本。
sudo
如果您使用创建虚拟环境sudo
,请尝试更改其权限或在不使用 的情况下重新创建它sudo
。
sudo chmod -R 777 venv
上面的命令假设您的虚拟环境位于名为 的文件夹中
venv
。
777
意味着授予所有用户对该目录内容的完全访问权限。
如果这不起作用,请尝试升级您的pip
版本。
升级你的pip版本
以下是在所有操作系统上升级 pip的命令。
哪个命令有效取决于您的操作系统和 Python 版本。
# 👇️ if you have pip already installed pip install --upgrade pip # 👇️ if your pip is aliased as pip3 (Python 3) pip3 install --upgrade pip # 👇️ if you don't have pip in your PATH environment variable python -m pip install --upgrade pip # 👇️ if you don't have pip in your PATH environment variable python3 -m pip install --upgrade pip # 👇️ if you have easy_install easy_install --upgrade pip # 👇️ if you get a permissions error sudo easy_install --upgrade pip # 👇️ if you get a permissions error when upgrading pip pip install --upgrade pip --user # 👇️ upgrade pip scoped to the current user (if you get permissions error) python -m pip install --user --upgrade pip python3 -m pip install --user --upgrade pip # 👇️ Installing directly from get-pip.py (MacOS and Linux) curl https://bootstrap.pypa.io/get-pip.py | python # 👇️ if you get permissions issues curl https://bootstrap.pypa.io/get-pip.py | sudo python # 👇️ alternative for Ubuntu/Debian sudo apt-get update && apt-get upgrade python-pip # 👇️ alternative for Red Hat / CentOS / Fedora sudo yum install epel-release sudo yum install python-pip sudo yum update python-pip
如果您收到错误“ModuleNotFoundError:Python 中没有名为 ‘pip’ 的模块”,请查看我的另一篇文章:
如果代码示例中的命令不适合您,请单击“Install pip in Python”链接。
升级 pip 后,
还要升级setuptools 。
pip install --upgrade setuptools pip3 install --upgrade setuptools python3 -m pip install --upgrade setuptools
pip
尝试安装并升级软件包setuptools
。
pip install <package-name> # 👇️ for Python 3 user pip3 pip3 install <package-name> python -m pip install <package-name> python3 -m pip install <package-name>
如果这没有帮助,请尝试以管理员身份运行 CMD。
以管理员身份运行CMD
以管理员身份运行 CMD:
- 单击搜索栏并键入“cmd”。
- 右键单击“命令提示符”。
- 单击“以管理员身份运行”。
- 以管理员身份打开 shell 后,重新运行该
pip install
命令。
pip install <package-name> pip3 install <package-name> python -m pip install <package-name> python3 -m pip install <package-name>
pip install
。如果以管理员身份打开 CMD 没有帮助,请尝试以管理员身份打开 PowerShell 并运行该命令。
以管理员身份运行 PowerShell:
- 单击搜索栏并键入“PowerShell”。
- 右键单击“Windows PowerShell”。
- 单击“以管理员身份运行”。
pip install
。当文件被另一个进程锁定时,Windows 会抛出“EnvironmentError: [Errno 13] Permission denied”。
如果错误仍然存在,请更改用户的访问权限。
更改用户的访问权限
错误“由于环境错误而无法安装软件包:[Errno 13]
权限被拒绝”通常是由于用户无权修改应安装软件包的目录而导致的。
要解决该错误,请允许用户完全访问 Python 目录。
要更改用户的访问权限:
- 打开安装 Python 的文件夹,例如
C:\Program Files (x86)\Python310
.
您可以使用以下 2 个命令之一找到 Python 的安装位置。
where python python -c "import os, sys; print(os.path.dirname(sys.executable))"
- 打开安装 Python 的目录后,右键单击“Python”或“Python310”文件夹,然后单击“属性”。
- 转到“安全”选项卡,然后单击“编辑”按钮。
- 允许对您的用户或整个“用户”组进行“完全控制”。
- 点击“应用”。
- 再次运行
pip install <package-name>
命令。
向用户授予“完全访问”权限后,您应该能够
pip install
打包而不会出现任何错误。
如果您有一个活动的虚拟环境,您的 Python 位置将被限制在特定的虚拟环境中。
您可以where python
在虚拟环境处于活动状态时运行该命令来查找该目录。
将“include-system-site-packages”设置为“true”
如果您使用虚拟环境,另一件事可能会有所帮助是:
- 打开你的
venv
文件夹。 - 单击该
pyvenv.cfg
文件。 - 将
include-system-site-packages
属性设置为true
。 - 保存文件。
- 重新运行该
pip install
命令。
结论
解决“由于环境错误而无法安装软件包:[Errno 13]权限被拒绝”错误:
- 运行
pip install
带有--user
选项的命令。 - 创建一个虚拟环境并在其中安装软件包。
- 授予用户对 Python 目录的完全访问权限。
由于环境错误而无法安装软件包:HTTPSConnectionPool
当我们尝试在没有必要权限的情况下安装软件包时,会出现错误“由于环境错误而无法安装软件包:HTTPSConnectionPool”。
要解决该错误,请添加受信任的主机或使用该选项运行pip install
命令--user
。
Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: (Caused by ProtocolError('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)))
导致错误的最常见原因是pip install
从代理后面运行命令。
如果您的公司网络受到防火墙保护,这种情况经常会发生。
解决该错误的一种方法是添加受信任的主机。
pip install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org <package-name> # 👇️ pip3 (for Python 3) pip3 install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org <package-name> python -m pip install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org <package-name> # 👇️ for Python3 python3 -m pip install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org <package-name> # 👇️ py alias (Windows) py -m pip install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org <package-name>
如果出现权限错误,请尝试在命令前面加上sudo
.
sudo pip install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org <package-name> # 👇️ pip3 (for Python 3) sudo pip3 install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org <package-name>
请注意,该命令以 结尾<package-name>
。确保将占位符替换为您尝试安装的包的名称,例如numpy
或tensorflow
。
您还可以使用命令在pip.conf 或 pip.ini文件中设置受信任的主机
,这样您就不必--trusted-host
在每次需要安装包时都添加该选项。
pip config set global.trusted-host "pypi.python.org pypi.org files.pythonhosted.org" --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org
pip.conf
orpip.ini
文件并打印文件的位置。如果您从代理后面运行命令,请添加该--proxy
选项。
sudo pip install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org --proxy=127.0.0.1:3128 <package-name> # 👇️ pip3 (for Python 3) sudo pip3 install --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org --proxy=127.0.0.1:3128 <package-name>
–proxy选项
用于指定表单中的代理
scheme://[user:passwd@]proxy.server:port
。
pip install
命令。您公司的防火墙可能不允许您访问pypi
服务器。
您也可以联系您公司的系统管理员。
您可能会尝试做的其他事情是增加pip install
命令的超时时间。
pip install
由于您的 wifi 速度太慢而导致命令超时,也会导致该错误。
sudo pip install --default-timeout=180 numpy sudo pip3 install --default-timeout=180 numpy
确保替换numpy
为您尝试安装的软件包的名称。
pip install
或者,您可以尝试使用该选项运行该命令--user
。
使用 –user 选项安装软件包
当我们没有安装包的必要权限时,会出现错误“由于环境错误无法安装包:HTTPSConnectionPool”。
要解决该错误,请运行带有选项的命令--user
,例如
pip install numpy --user
。
解决该错误的一种方法是运行pip install
带有--user
选项的命令。
pip install <package-name> --user pip3 install <package-name> --user python -m pip install <package-name> --user python3 -m pip install <package-name> --user
确保将<package-name>
占位符替换为包的实际名称,例如pip install tensorflow --user
。
该--user
选项将包安装在用户的主目录中。
但是,--user
如果您有活动的虚拟环境,该选项将不起作用。
您可以尝试的另一件事是使用sudo
.
sudo pip install <package-name> sudo pip3 install <package-name> sudo python -m pip install <package-name> sudo python3 -m pip install <package-name>
如果这没有帮助,请尝试创建虚拟环境。
创建虚拟环境
要解决“由于环境错误而无法安装软件包:HTTPSConnectionPool”错误:
- 创建虚拟环境。
- 激活虚拟环境。
pip install
在虚拟环境处于活动状态时运行命令。
# 👇️ use correct version of Python when creating VENV python3 -m venv venv # 👇️ activate on Unix or MacOS source venv/bin/activate # 👇️ activate on Windows (cmd.exe) venv\Scripts\activate.bat # 👇️ activate on Windows (PowerShell) venv\Scripts\Activate.ps1 # 👇️ install the specific package in the virtual environment pip install numpy
如果该python3 -m venv venv
命令不起作用,请尝试以下 2 个命令:
python -m venv venv
py -m venv venv
确保根据您的操作系统和 shell 使用正确的命令来激活虚拟环境。
您的虚拟环境将使用用于创建它的 Python 版本。
sudo
如果您使用创建虚拟环境sudo
,请尝试更改其权限或在不使用 的情况下重新创建它sudo
。
sudo chmod -R 777 venv
上面的命令假设您的虚拟环境位于名为 的文件夹中
venv
。
777
意味着授予所有用户对该目录内容的完全访问权限。
如果这没有帮助,请尝试以管理员身份运行 CMD。
以管理员身份运行CMD
以管理员身份运行 CMD:
- 单击搜索栏并键入“cmd”。
- 右键单击“命令提示符”。
- 单击“以管理员身份运行”。
- 以管理员身份打开 shell 后,重新运行该
pip install
命令。
pip install <package-name> pip3 install <package-name> python -m pip install <package-name> python3 -m pip install <package-name>
pip install
。如果以管理员身份打开 CMD 没有帮助,请尝试以管理员身份打开 PowerShell 并运行该命令。
以管理员身份运行 PowerShell:
- 单击搜索栏并键入“PowerShell”。
- 右键单击“Windows PowerShell”。
- 单击“以管理员身份运行”。
pip install
。当文件被另一个进程锁定时,Windows 会抛出“由于环境错误无法安装包:HTTPSConnectionPool”。
如果错误仍然存在,请更改用户的访问权限。
更改用户的访问权限
“由于环境错误而无法安装软件包:HTTPSConnectionPool”错误通常是由于用户无权修改应安装软件包的目录而导致的。
要解决该错误,请允许用户完全访问 Python 目录。
要更改用户的访问权限:
- 打开安装 Python 的文件夹,例如
C:\Program Files (x86)\Python310
.
您可以使用以下 2 个命令之一找到 Python 的安装位置。
where python python -c "import os, sys; print(os.path.dirname(sys.executable))"
- 打开安装 Python 的目录后,右键单击“Python”或“Python310”文件夹,然后单击“属性”。
- 转到“安全”选项卡,然后单击“编辑”按钮。
- 允许对您的用户或整个“用户”组进行“完全控制”。
- 点击“应用”。
- 再次运行
pip install <package-name>
命令。
向用户授予“完全访问”权限后,您应该能够
pip install
打包而不会出现任何错误。
如果您有一个活动的虚拟环境,您的 Python 位置将被限制在特定的虚拟环境中。
您可以where python
在虚拟环境处于活动状态时运行该命令来查找该目录。
如果这未能解决错误,请尝试升级您的pip
.
pip
以下是在所有操作系统上升级的命令。
哪个命令有效取决于您的操作系统和 Python 版本。
# 👇️ if you have pip already installed pip install --upgrade pip # 👇️ if your pip is aliased as pip3 (Python 3) pip3 install --upgrade pip # 👇️ if you don't have pip in your PATH environment variable python -m pip install --upgrade pip # 👇️ if you don't have pip in your PATH environment variable python3 -m pip install --upgrade pip # 👇️ if you have easy_install easy_install --upgrade pip # 👇️ if you get a permissions error sudo easy_install --upgrade pip # 👇️ if you get a permissions error when upgrading pip pip install --upgrade pip --user # 👇️ upgrade pip scoped to the current user (if you get permissions error) python -m pip install --user --upgrade pip python3 -m pip install --user --upgrade pip # 👇️ Installing directly from get-pip.py (MacOS and Linux) curl https://bootstrap.pypa.io/get-pip.py | python # 👇️ if you get permissions issues curl https://bootstrap.pypa.io/get-pip.py | sudo python # 👇️ alternative for Ubuntu/Debian sudo apt-get update && apt-get upgrade python-pip # 👇️ alternative for Red Hat / CentOS / Fedora sudo yum install epel-release sudo yum install python-pip sudo yum update python-pip
如果您收到错误“ModuleNotFoundError:Python 中没有名为 ‘pip’ 的模块”,请查看我的另一篇文章:
如果代码示例中的命令不适合您,请单击“Install pip in Python”链接。
升级 pip 后,setuptools
也升级。
pip install --upgrade setuptools pip3 install --upgrade setuptools python3 -m pip install --upgrade setuptools
pip install
现在尝试运行命令pip
并setuptools
升级。
将“include-system-site-packages”设置为“true”
如果您使用虚拟环境,另一件事可能会有所帮助是:
- 打开你的
venv
文件夹。 - 单击该
pyvenv.cfg
文件。 - 将
include-system-site-packages
属性设置为true
。 - 保存文件。
- 重新运行该
pip install
命令。
结论
要解决“由于环境错误而无法安装软件包:HTTPSConnectionPool”:
- 添加受信任的主机以便能够
pypi
从您的计算机进行访问。 - 运行
pip install
带有--user
选项的命令。 - 运行
pip install
前缀为 的命令sudo
。 - 尝试创建一个虚拟环境并在其中安装软件包。
- 安装软件包之前以管理员身份运行 CMD。