关于

最近花了很多时间整理视频,修改能记得的错误啥的,弄到“07 安装Pythonpycharm和视频下载利器youtube-dl.mp4“时觉得应该加一段Mac上自己安装证书的视频,要不就算是乖乖装好python和youtube-dl,一下载视频还是会蹦出这样shai的错误:

ERROR: Unable to download webpage: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate(_ssl.c:1045)> (cased by URLError(SSLCertVerificationError(1, ‘SSL: CERTIFICATE_VERIFY_FAILED{ certificate verify failed: unable to get local issuer certificate(_ssl.c:1045)’)))

很煞风景!

正如错误提示所言“certificate verify failed”,certificate粗问题啦。我第一次看到这错误相当糟圈,啥证书呀?咋还认证失败了呐?

Basically,我对付出错就三板斧:重做一次,希望奇迹发生;奇迹没发生,相关应用重装!机器重启!要是运气好重启重装后问题解决,蹑手蹑脚绝不深究错误原因,生怕一个不小心唤醒沉睡的恶龙;要是这招还不灵,那就只好搜索引擎啦。不过现在有越来越依靠搜索引擎的趋势,经常是一出错马上把错误提示拷贝到搜索引擎上搜一搜先。

当时是靠搜索引擎知道消灭这个错误需要安装certificate。据说python3.X以上就不给安装证书了,dei自己装,方法是打开Applications ---> Python 3.X文件夹,双击install certificate.command。

我自己用的电脑上的certificate早就装好了:一个是我不知道装好了怎么卸,其次我也不想卸,万一卸了出啥幺蛾子可肿么办......所以我就把很久以前用过的电脑找出来,打算那上面演习一次。那台电脑我刚学python时在上面胡搞过,之前一直用windows,第一次用MAC电脑灰常不习惯,有什么设置绊着我了,到网上找个帖子不管有啥后果都往上招呼,一个后果就是terminal上把pip命令给干没了(就是认不出pip命令)。

以下的事儿都发生在Mac的terminal命令窗口上,那什么,要是用MAC的您不知道terminal命令窗口是啥玩意,咋调出来哒,那大兄弟,您dei抓点紧了o(^▽^)o。 同时按住command键和空格键调出搜索栏,输入terminal调出命令窗口……


首先试图安装youtube-dl,在terminal命令窗口(不是python解释器)上敲入:pip install youtube-dl,出来的提示是:command not found;正在敲入命令的人表示不知道啥时候用何种方式把pip给干掉了。

只好换成pip3 install youtube-dl,错误提示变成:

Collectingyoutube-dl

 Could not fetch URL https://pypi.python.org/simple/youtube-dl/: There was a problem confirming the sslcertificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:645) - skipping

 Could not find a version that satisfies the requirement youtube-dl (from versions: )

No matching distribution found for youtube-dl

出现了好几次version这个单词,莫非是版本问题,怎么查版本来着?

pip3 -h看下帮助文件,哦,原来是:pip3 -V,输出结果是:

pip 8.1.1 from /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages (python 3.5)

升级一下pip3:pip3 install --upgrade pip3,给出的提示是:

Collecting pip3

 Could not fetch URL https://pypi.python.org/simple/pip3/: There was a problem confirming the sslcertificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:645) - skipping

 Could not find a version that satisfies the requirement pip3 (from versions: )

No matching distribution found for pip3

https://pip.pypa.io/en/stable/installing/

Reinstall python but no pip and pip3 still point to old version

最讨厌看一大坨错误提示!

竟然升级不了(后面发现是我用错了,这个情况可能pip3 install --upgrade pip可以升级,不确定,因为没环境试了),而且这个错误提示跟之前pip3 install youtube-dl的错误提示有几分相像。给建议重装python,那就重装吧,本来看3.5也不太顺眼。

重装python3.7,把原来的python3.5直接删掉(就是去Application下把python3.5直接扔进垃圾箱,其实并没有删除干净,删除干净挺麻烦,自行搜索还要删除那些文件)。再运行pip3 install youtube-dl还是一样的错误提示

气急败坏的运行:which pip3,给出的回应是:

/Library/Frameworks/Python.framework/Versions/3.5/bin/pip

原来还指向原来3.5的pip呐!也就是运行pip3时会去找3.5的pip。

再看下系统的查找路径:echo $PATH,回应是:

/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

所以要更改命令查找路径$PATH,如何更改$PATH搜一下,选了这个方法:

  1. echo $PATH,查看原来的搜索路径,并将原来的搜索路径拷贝下来
  2. 修改成你想要的搜索路径,我就是要让pip3命令指向3.7的pip。
  3. 先去/Library/Frameworks/Python.framework/Versions/3.7/bin确认的确有个pip命令候在那儿。在原搜索路径的基础上进行修改(3.5改成3.7):
  4. /Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  5. 回到terminal窗口清空原来的搜索路径:export PATH=""
  6. 放上新的搜索路径:export PATH = "/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

查看版本:pip3 -V,已经不是之前的8.1.1。如果想用最新的就:pip3 install --upgrade pip

运行youtube-dl URL(URL是你要下载的视频链接),出现想要的错误提示:

ERROR: Unable to download webpage: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate(_ssl.c:1045)> (cased by URLError(SSLCertVerificationError(1, ‘SSL: CERTIFICATE_VERIFY_FAILED{ certificate verify failed: unable to get local issuer certificate(_ssl.c:1045)’)))

去Applications下的python 3.7文件夹下双击install certificate.command。再次去terminal运行:youtube-dl 你的URL

Bingo,下载成功!

最后解决下terminal上pip命令不认识的事儿,用别名解决的:

alias pip='usr/local/bin/pip3.7',再敲入:pip -V,这回认识了。

另外Finder上查看隐藏文件的快捷键是:Command + shift + .

这个过程我也会录段视频,补到原来安装youtube-dl那个视频之后的(*^o^*)。另外经过Koala艰苦卓绝的努力,网站已经建得有几分眉目,还有内容要填充(比如代码要整理下贴上去),当然网站建设没有终点:除了内容要持续更新外,功能如果有精力也会继续开发的。水平有限,都是边学边做,还望多多包涵!!!