关于Python3的pip不好使的问题

876 阅读3分钟

. 背景

昨儿我h哥让我帮忙写个爬虫,我今儿就想试试工具,练个手,本以为做个test撑死也就半个小时事情吧。
但是当我敲下—— pip install pyppeteer 这样一行命令的时候我发现事情有点超出预期。。。
我当年那么迷行而崇拜的Python在包管理这里摆了我一道,这时候其实最快两种解决方式是
(1)homebrew工具下载一个新python以及添加环境变量
(2)使用Anaconda集成工具
但本着解决问题而不是逃避问题的原则我就头铁了一下,然后一上午就过去了…

. 环境描述

1OS系统:macos Catalina 10.15.6
2python版本:3.8.3/3.8.5
3需求:使用python的包管理工具pip安装pyppeteer
4命令:pip install pyppeteer

. 问题及解决方式描述

1、SSL/TLS验证问题

 1pip install pyppeteer
 2# 第一个命令下去报了一个SSL/TLS验证问题,这个好解决,是因为源的问题
 3# 解决步骤如下
 4cd ~
 5mkdir .pip
 6vim pip.conf
 7# 在pip.conf中添加如下内容
 8[global]
 9index-url = http://mirrors.aliyun.com/pypi/simple/
10trusted-host = mirrors.aliyun.com
11disable-pip-version-check = true
12timeout=120
13
14# 上边的配置处理就是为了更改pip的源,这里用的是阿里云镜像,豆瓣、清华等都可选
15# 当然如果不嫌麻烦,可以每次加上 -i 参数换源,这种是一劳永逸的做法

2、权限问题

1pip install pyppeteer
2# 继续这个命令下去报了一个写入权限不足的错误
3# /Users/andyduo/Library/Caches/pip写入权限不足
4Check the permissions.
5# 这个我寻思也没啥好寻思的,直接加sudo呗
6sudo pip install pyppeteer
7# 完了它就卡那了,不往下去了。。。

后边也尝试了Google上各种方案,包括加--user参数等,基本查到的都试了一下。但是情况和我碰到还都不太一样,我仔细想了一下,我这个是镜像源问题和权限问题叠加,加上sudo提权,镜像源就不好使了。然后我就有了个大胆的想法,删除所有的本机Python版本,上官网下一个最新版本Python3和pip。

3、pip和Python对不上的问题

 1pip install pyppeteer
 2# 运行成功,开心的要死,完了python进行import,发现没有这个包。。。
 3# 分析了一下,应该是pip和python没对上,系统中python3有三个版本,包括3.7.3、3.8.3和3.8.5
 4# 完了应该是pip没有对应上当前的Python3版本——3.8.5,来,换个命令
 5python -m pip install pyppeteer
 6# 又出现权限问题
 7# ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Users/andyduo/Library/Python/3.8/lib/python/site-packages/pip-20.2.3.dist-info'
 8# Check the permissions.
 9# 试了试用sudo,果然还是不行,然后我就去加权限,这是没有办法的办法
10cd /Users/andyduo/Library/Python/3.8/lib/python/
11sudo chmod 775 site-packages
12cd
13
14python -m pip install pyppeteer

. 总结与思考

这次出现的问题,是第一次出现这种混合问题,不知道是不是mac对于权限的缩紧还是什么,这个不重要,主要是Python这个多版本确实得好好想办法管理一下,否则下次必然还会出现Python和pip对不上的情况等一系列问题。傻瓜点暴力点就是使用现成的管理工具——homebrew或者anaconda这样的;另外就是使用virtualenv进行虚拟环境管理;如果还是想使用原生进行管理,那么做好环境变量配置等,另外就是要头够铁。。。解决一个个小问题就是一种积累~