pip配置了需要TLS / SSL的位置,但Python中的ssl模块不可用

时间:2017-08-30 07:31:40

标签: python pip pexpect

我正在使用Python3.6,当我尝试安装" modules"使用pip3,我面临下面提到的问题" pip配置了需要TLS / SSL的位置,但Python中的ssl模块不可用"

请帮我解决这个问题

38 个答案:

答案 0 :(得分:18)

对于Windows 10 如果要在普通cmd中使用pip,不仅要在Anaconda提示符下使用。您需要添加3条环境路径。 像这些: D:\ Anaconda3; D:\ Anaconda3 \脚本; D:\ Anaconda3 \ Library \ bin

大多数人只添加D:\ Anaconda3 \ Scripts;

答案 1 :(得分:17)

如果您的python是安装了pyenv的python,而pyenv是通过macOS上的自制软件安装的,则可能会有更新的版本可以解决此问题:

$ brew update && brew upgrade pyenv

然后重新安装python版本:

$ pyenv install 3.7.2
pyenv: /Users/luckydonald/.pyenv/versions/3.7.2 already exists
continue with installation? (y/N) 

注意,像这样覆盖现有的python安装有点脏,但是在我看来,它确实可行。

答案 2 :(得分:11)

MAC OS

我在Mac OS(Mojave)上遇到了同样的问题,并解决了此链接中提到的问题-Openssl issue

  1. 如果您没有自制软件或不知道什么是自制软件:

    / usr / bin / ruby​​ -e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

  2. 或者如果您已经安装了Homebrew:

brew update && brew upgrade
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

更新: 请记住,我必须使用--ignore-dependencies标志,因为安装了其他依赖于OpenSSL的软件包。

如果问题是在使用 pyenv 之后引起的,则可以使用以下方法解决此问题:

brew reinstall python

答案 3 :(得分:11)

对于未来尝试解决此问题的Oracle Linux用户,以下内容对我有用。 首先安装缺少的库:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel 
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

然后cd到你的Python3.X库并运行:

make
make install 

答案 4 :(得分:8)

我正在使用Windows 10并安装了带有Python 3.7的Miniconda 3。

我通过遵循此https://github.com/conda/conda/issues/8273

解决了该错误

具体地说,我将以下文件从C:\Users\MyUser\Miniconda3\Library\bin复制到了C:\Users\MyUser\Miniconda3\DLLs

  • libcrypto-1_1-x64.dll
  • libcrypto-1_1-x64.pdb
  • libssl-1_1-x64.dll
  • libssl-1_1-x64.pdb

答案 5 :(得分:7)

对于Debian用户,可能会使用以下内容:

sudo -s

apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.5 libgdm-dev libdb4o-cil-dev libpcap-dev

然后使用Python 3.X库源代码cd到该文件夹​​并运行:

./configure
make
make install

答案 6 :(得分:6)

类似于上述solution,使用pyenv重新安装python版本。

以某种方式,我升级了long,它破坏了pyenv版本的python。

openssl

第一行说它依赖于自制的openssl。

答案 7 :(得分:4)

就我而言,我重新安装了Python。解决了这个问题。

brew reinstall python

答案 8 :(得分:4)

对于Windows 10,Windows 7 如果pip安装不适用于CMD提示符,请使用Anaconda提示符运行它-可以。

https://github.com/pypa/virtualenv/issues/1139

答案 9 :(得分:4)

我遇到了这个问题,因为Visual Studio Code从VS Code提示符下安装了pylint。 我可以通过打开Anaconda安装目录并运行

来解决此问题。
pip install pylint

然后VS Code很高兴,但这不能解决运行中的问题

& C:/Users/happy/Anaconda3/python.exe -m pip install -U pylint

几乎给出了相同的错误,因此VS Code无法访问python模块。

请注意,VS Code会拾取安装时看到的第一个python env,屏幕左下方指示正在使用哪个env。单击该区域可以设置环境。因此,即使您为某个环境运行了pip安装,VS Code也可能会选择另一种。

最好的方法是确保VS代码选择了正确的python环境,并且系统PATH中有相同的环境(在“系统属性->高级->环境变量”下)

在“路径变量”下,编辑并浏览到要VSCode使用并添加到PATH的特定Anaconda目录,我需要添加以下内容:

C:\Users\happy\Anaconda3\
C:\Users\happy\Anaconda3\Scripts\
C:\Users\happy\Anaconda3\Library\bin\
C:\Users\happy\Anaconda3\Library\mingw-w64\bin\

您的Anaconda安装目录可能不同。 请注意,在重新启动终端之前,Windows不会使PATH变量生效。在这种情况下,请关闭并重新操作VS代码。如果使用的是终端机或PS Shell,请关闭然后重新打开,然后检查“路径”以确保其中已包含。

答案 10 :(得分:3)

最新的Python 3.8.4或更高版本应该能够开箱即用地支持https协议。如果您的PC上仍安装了旧的python-手动下载并安装python3,或使用Chocolatey:

如果您没有Chocolatey,请从以下位置进行安装:https://chocolatey.org/docs/installation

您只需复制粘贴一个命令行衬里,然后在特权较高的命令提示符下执行即可。

choco install python3

如果您没有安装python3,或者您已安装python3-那么:

choco upgrade python3

还请注意,您还可以使用anaconda发行版,因为它具有内置的带https支持的python,但是此指令很古老,不再需要遵循它们。

使用命令行安装anaconda:

choco install anaconda3

设置环境变量:

set PATH=C:\tools\Anaconda3\Scripts;C:\tools\Anaconda3;C:\tools\Anaconda3\Library\bin;%PATH%

,然后运行失败的命令。就我而言,是:

pip install conan

Anaconda使用单独的python安装,并且pip也是anaconda专用的。

答案 11 :(得分:3)

以相同的方式用于OpenSUSE,但对上述软件包进行了一些更改:

zypper install zlib-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel

然后cd到Python源dir和

make
make install

make
make altinstall

也许

ln -s /usr/local/lib64/python3.6/lib-dynload/ /usr/local/lib/python3.6/lib-dynload

应该为OpenSUSE用户执行。参见Python 3.7 install not working on openSUSE Leap 42.3

答案 12 :(得分:2)

正如Tokci所说,它也适用于Windows 7。

“将鼠标移至Windows图标(左下方),然后开始键入“ Anaconda”。其中应显示一些匹配的条目。选择“ Anaconda Prompt”。将打开一个名为“ Anaconda Prompt”的新命令窗口。 “

然后点子起作用。

以下内容也有助于导入xgboost: https://www.youtube.com/watch?v=05djBSOs1FA

答案 13 :(得分:2)

为我工作。

apt-get install libssl-dev

使用此功能为点启用ssl。 让我知道是否有人遇到问题。

答案 14 :(得分:1)

问题是由于PC上缺少OpenSSL软件包造成的。

如果{ path: '/', name: 'home', component: () => import('./views/Home.vue'), beforeEnter(to, from, next) { if (store.getters.isAuth) { next(); } else { next("/pages/login"); } } }, { path: '/blogs', name: 'blogs', component: () => import('./views/Blogs.vue'), beforeEnter(to, from, next) { if (store.getters.isAuth) { if (store.state.userData[0].user_role == 1 || store.state.userData[0].user_role == 2 || store.state.userData[0].user_role == 3) { next(); } else { alert('you are not authorized'); } } else { next("/pages/login") } } }, 也给出错误消息。

您可以通过从以下站点安装OpenSSL(Win64 OpenSSL v1.1.1g)来解决此问题:

pip install openpyxl

重新启动您正在使用的IDE,以使更改生效。

答案 15 :(得分:1)

问题可能来自您安装的openssl软件包版本。对我来说就是这种情况,我只是升级了它就解决了这个问题。我在Mac OS上,使用brew:

brew upgrade openssl

如果您在brew上安装了python,则应该直接解决该问题,因为python依赖于openssl

答案 16 :(得分:1)

解决了此问题,而无需更改与TSL / SSL相关的任何内容。

我试图查看pip是否发生了同样的事情,并且发现pip被破坏了。进行了一些挖掘,发现这可能是由2020年2月1日删除的Homebrew python@2造成的。

运行brew uninstall python@2删除Homebrew安装的python2。

销毁了使用python3创建的虚拟环境并创建了一个新环境。
pip3再次可以正常安装。

答案 17 :(得分:1)

在ubuntu上从源代码安装python 3.8时遇到此问题。与默认的python 3.7一起成功安装它所需的步骤总结如下:

sudo apt -y install libssl-dev zlib1g-dev build-essential

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -xf Python-3.8.0.tgz
cd Python-3.8.0/

./configure --enable-optimizations
make
sudo make altinstall

zlib1g-dev build-essential 的安装说明是多余的,因为ubuntu桌面已经具有了这些说明,但是对于某些Amazon EC2实例而言是必需的。 python 3.8.0是当前的最新版本,但应替换为可用的最新版本。

这些说明最适合将python 3.7保留为python3的默认设置,并在虚拟环境中运行python 3.8。

答案 18 :(得分:1)

我只是用下面的命令解决了这个问题:

brew upgrade python@3.9

此版本默认包含 SSL!

答案 19 :(得分:1)

当前在Windows 10上的Anaconda提示符(Anaconda3)中存在相同的问题。这是解决方法:https://github.com/ContinuumIO/anaconda-issues/issues/10576

答案 20 :(得分:1)

在 Windows 10 SQL Server 19 中,解决方案是已知的。

复制以下文件:

  • libssl-1_1-x64.dll
  • libcrypto-1_1-x64.dll

来自文件夹

C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\Library\bin

到文件夹

C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\DLLs

然后打开一个新的 DOS 命令 shell 提示符。

来自https://docs.microsoft.com/en-us/sql/machine-learning/troubleshooting/known-issues-for-sql-server-machine-learning-services?view=sql-server-ver15#7-unable-to-install-python-packages-using-pip-after-installing-sql-server-2019-on-windows

答案 21 :(得分:1)

只需尝试通过Anaconda提示符进行安装

答案 22 :(得分:1)

转到Anaconda提示符并键入(如果您的引擎上安装了python 3.x):

py -m pip install pymysql 

我遇到了同样的问题,这解决了我的问题。之后,您可以在Power Shell或任何其他提示中导入pymysql。

答案 23 :(得分:1)

如果有人使用Arch Linux操作系统,我可以通过运行以下命令解决TLS / SSL问题:

sudo pacman -S openssl

然后我可以使用pip安装所需的软件包:

pip install openpyxl

答案 24 :(得分:0)

我遇到了同样的问题,这是因为我更改了环境的文件夹。 我刚刚删除了 env 并重新安装了所有内容。

答案 25 :(得分:0)

如果您已通过 anaconda 安装 scoop,并且在 pip 环境中使用 conda 时遇到此错误,您可以通过以下方式解决它...

  1. 将这些添加到您的路径中
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Scripts
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Library
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Library\bin
  1. 通过 scoop 安装 openssl
scoop install openssl
  1. 并将以下 DLL 从 ..\anaconda3\Library\bin 复制到 ..\anaconda3\DLLs

参考文献:

答案 26 :(得分:0)

我使用pyenv管理的Ubuntu,pyenv和Python 3.8.1遇到了这个问题。实际上,没有办法使pip正常工作,因为每次我尝试安装任何东西(包括pip本身)时,都会出现相同的错误。 最终的解决方案是通过pyenv安装一个新版本,在本例中为3.8.6。显然,从3.8.4版本开始,Python可以立即运行SSL / TLS,因此一切正常。

答案 27 :(得分:0)

就我而言,我在 Linux 上遇到了 $PATH 的问题。这也可能发生在 MacOS 上。

检查 /usr/bin/pip3 install package_name_goes_here 是否适合您。如果是,那么运行 which pip3 这将告诉您 pip3 安装在哪个目录中。

如果它类似于 /usr/local/bin/pip3/usr/bin/pip3 不同,那么您可能需要调整您的 $PATH。

运行 echo $PATH 并复制结果。

PATH 只是包含目录的以冒号分隔的目录列表。 Bash 将始终返回您尝试执行的程序的第一个实例。预先移动所有系统目录。以下是一些系统目录的列表:

/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

如果失败,则通过运行 openssl 验证您是否安装了 openssl version -a,如果没有,则安装 openssl。

答案 28 :(得分:0)

对于 Windows 10 下的 Miniconda3,python=3.7.5 我尝试了以上所有建议;没有任何效果。我不得不降级到 python=3.7.0 解决了这个问题

conda install python=3.7.0

显然这很混乱。答案表明升级到 3.8.5 也可能有效,但这对我的环境有太多副作用。

答案 29 :(得分:0)

我使用的是macOS,曾经使用过brew,但是Vaulstein在回答中提到的内容无法涵盖我的情况。

我运行以下命令以确保brew未安装我当前的python

brew list | grep python           
python
python@2

brew info python
python@3.8: stable 3.8.3 (bottled)
Interpreted, interactive, object-oriented programming language
https://www.python.org/
Not installed
... 

所以我从https://www.python.org/下载了最新的3.8.5,安装时看到了以下信息

证书验证和OpenSSL

此软件包包括自己的OpenSSL 1.1.1私有副本。的 由系统管理的系统和用户钥匙串中的信任证书 Python ssl模块未将 Keychain Access 应用程序和 security 命令行实用程序用作默认值

安装3.8.5后,它解决了该问题。

答案 30 :(得分:0)

您可以尝试brew link,它将向您显示正确的说明:

$ brew link openssl --force
Warning: Refusing to link macOS provided/shadowed software: openssl@1.1
If you need to have openssl@1.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

For pkg-config to find openssl@1.1 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

答案 31 :(得分:0)

您可以从Anaconda Prompt尝试。

您将看到(基本),现在升级点数。 示例:

(base) C:\Users\Tom>cd ..

(base) C:\Users>cd ..

(base) C:\>python -m pip install --upgrade pip
Requirement already up-to-date: pip in g:\anaconda3\lib\site-packages (20.0.2)

(base) C:\>pip -V
pip 20.0.2 from G:\Anaconda3\lib\site-packages\pip (python 3.7)

# Try install
(base) C:\>pip install selenium

这将花费较长的时间,但也会安装或升级Anaconda内部使用的SSL库。 Keep Going here

答案 32 :(得分:0)

我尝试过:

python -m pip install --upgrade pip

然后,它在Windows 10中对我来说正常工作。

答案 33 :(得分:0)

对于centos 7:

安装openssl:

sudo yum install openssl-devel

现在我们已经提取了python tar,转到了python目录,

运行以下命令

sudo ./configure
sudo make
sudo make install

这将以centos解决此问题

答案 34 :(得分:0)

这对我有用:

successor :: NumGadt a -> a
successor x@NumGadt{} = 1 + getNum x

python版本和程序包管理器可能有所不同。

答案 35 :(得分:0)

我遇到了这个问题!我不小心安装了Miniconda3的32位版本。确保选择64位版本!

答案 36 :(得分:0)

使用anaconda导航器在chrome中启动jupyter。

答案 37 :(得分:-1)

这是默认ssl设置的问题。您必须下载Python3并将路径添加到系统。如果您使用Pycharm,请将解释器设置为python3路径。这样您就可以正常使用pip3了。