前言
在学习Python的Flask框架时,使用到了Pipenv代替pip,在下载项目的依赖时,locking部分特别慢,经常超时失败。搜索了一下解决方法,整理到一起。
pip 安装缓慢
问题原因
pipenv是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv,能够有效管理Python多个环境,各种第三方包及模块。
pipenv中的Pipfile中source源为python官网,服务器在国外,因此加载的时候特别慢。
- 解决方法:将URL修改为国内的镜像源即可。
解决方法
国内镜像源:
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
使用方法:
1. 临时
xxxxxxxxxx21# 临时:pip install -i + 源地址+ 安装库名2pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python2. 永久修改
- windows下,在C盘,Users目录下,找到自己的计算机名称,进入目录
- 进入目录后,创建一个文件夹,命名为pip
- 在进入这个文件夹,先创建为txt文件
- 打开添加以下的内容,然后在修改名称为pip.ini
- 添加清华的源地址
xxxxxxxxxx21[global]2index-url = https://pypi.tuna.tsinghua.edu.cn/simple- 保存后,修改配置文件名称为pip.ini
Pipenv安装缓慢
原因同Pip,也是因为Pipfile中source源为python官网,服务器在国外,因此加载的时候特别慢。
解决方法
cd 到Pipfile所在路径,在命令行中运行下面的command,即可。
xxxxxxxxxx81# 阿里2python -c "s='https://mirrors.aliyun.com/pypi/simple';fn='Pipfile';pat=r'(\[\[source\]\]\s*url\s*=\s*\")(.+?)(\")';import re;fp=open(fn, 'r+');ss=fp.read();fp.seek(0);fp.truncate();fp.write(re.sub(pat, r'\1{}\3'.format(s), ss));fp.close();print('Done! Pipfile source switch to:\n'+s)"3
4# 清华5python -c "s='https://pypi.tuna.tsinghua.edu.cn/simple';fn='Pipfile';pat=r'(\[\[source\]\]\s*url\s*=\s*\")(.+?)(\")';import re;fp=open(fn, 'r+');ss=fp.read();fp.seek(0);fp.truncate();fp.write(re.sub(pat, r'\1{}\3'.format(s), ss));fp.close();print('Done! Pipfile source switch to:\n'+s)"6
7# 豆瓣8python -c "s='https://pypi.douban.com/simple';fn='Pipfile';pat=r'(\[\[source\]\]\s*url\s*=\s*\")(.+?)(\")';import re;fp=open(fn, 'r+');ss=fp.read();fp.seek(0);fp.truncate();fp.write(re.sub(pat, r'\1{}\3'.format(s), ss));fp.close();print('Done! Pipfile source switch to:\n'+s)"换完源,安装package还是有点慢?
可以考虑用pipenv install --skip-lock xxx 来安装python包,然后另开一个终端来运行pipenv lock
pipenv常用命令
xxxxxxxxxx261# 删除虚拟环境2pipenv --rm3
4# 退出虚拟环境5exit6
7# 安装包 8pipenv install package9
10# 卸载包 11pipenv uninstall package12
13# 查看虚拟环境目录14pipenv --venv15
16# 查看包关系版本17pipenv graph18
19# 查看安装的包20pip freeze21
22# 查看环境下所以包23pip list24
25# 同步包26pipenv update

