前言
在学习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. 临时
xxxxxxxxxx
21# 临时:pip install -i + 源地址+ 安装库名
2pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
2. 永久修改
- windows下,在C盘,Users目录下,找到自己的计算机名称,进入目录
- 进入目录后,创建一个文件夹,命名为pip
- 在进入这个文件夹,先创建为txt文件
- 打开添加以下的内容,然后在修改名称为pip.ini
- 添加清华的源地址
xxxxxxxxxx
21[global]
2index-url = https://pypi.tuna.tsinghua.edu.cn/simple
- 保存后,修改配置文件名称为pip.ini
Pipenv安装缓慢
原因同Pip,也是因为Pipfile中source源为python官网,服务器在国外,因此加载的时候特别慢。
解决方法
cd 到Pipfile所在路径,在命令行中运行下面的command,即可。
xxxxxxxxxx
81# 阿里
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常用命令
xxxxxxxxxx
261# 删除虚拟环境
2pipenv --rm
3
4# 退出虚拟环境
5exit
6
7# 安装包
8pipenv install package
9
10# 卸载包
11pipenv uninstall package
12
13# 查看虚拟环境目录
14pipenv --venv
15
16# 查看包关系版本
17pipenv graph
18
19# 查看安装的包
20pip freeze
21
22# 查看环境下所以包
23pip list
24
25# 同步包
26pipenv update