查看所有Python相关学习笔记
python第三方包使用国内源安装&离线安装
一、将pip源更换到国内镜像
国内源下载速度较快
1.1 临时方法
命令行后面加上指定源
pip install pandas -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
1.2 永久方法
1.2.1 mac
mkdir ~/.pip
tee ~/.pip/pip.conf <<-'EOF'
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=https://pypi.tuna.tsinghua.edu.cn
EOF
1.2.2 win
直接在user目录中创建一个pip目录,如:C:\Users\用户名\pip,然后新建文件pip.ini,即 %HOMEPATH%\pip\pip.ini,在pip.ini文件中输入以下内容:
global下添加镜像源
global下设置超时时间
install下添加信任镜像源
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
timeout = 100
[install]
trusted-host = mirrors.aliyun.com
1.2.3 Linux
修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件。文件夹要加“.”,表示是隐藏文件夹)
内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
二、问题解决(公司通过代理访问外网,通过pip无法下载第三方库)
参考文章 https://www.lagou.com/lgeduarticle/99027.html
2.1、临时设置
2.1.1 pip在代理模式下,下载第三方库
下载前先在cmd窗口设置临时变量(win电脑)
点击进入-->特殊字符转化为UrlEncode,URL编码/解码
# 密码中的特殊符号需转换为UrlEncode
set HTTP_PROXY=http://user:passwd@proxy.server:port
set HTTP_PROXYS=https://user:passwd@proxy.server:port
然后执行下载操作(此处使用阿里源)
pip install 包名 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
2.1.2 代理模式下requests库无法正常访问
访问时添加proxies参数
import requests
url = 'http://www.baidu.com'
proxies = {
"http": "http://user:passwd@proxy.server:port",
"https": "https://user:passwd@proxy.server:port",
}
response = requests.get(url, proxies=proxies)
print(response.url)
2.2 本机永久设置
在pip.ini文件中输入以下内容(如果没有的话则需要新建一个pip.ini-->直接在user目录中创建一个pip目录,如:C:\Users\用户名\pip,然后新建文件pip.ini,即 %HOMEPATH%\pip\pip.ini,):
参考1.2.2
global下添加代理配置
[global]
proxy=https://user:passwd@proxy.server:port
2.3 为conda设置代理及国内源
使用conda config --set show_channel_urls yes
命令生成配置文件C:\Users\用户名\.condarc
,打开配置文件.condarc
,按如下格式添加信息后保存,即可使用conda
命令访问网络资源
- 代理设置参考如下,密码中的特殊符号需转换为UrlEncode(参考2.1.1)
channels:
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
- https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
- defaults
show_channel_urls: true
proxy_servers:
https: http://tester:%40%23test1234@127.0.0.1:8080
ssl_verify: false
# 上述示例登录代理的用户名为:tester
# 上述示例登录代理的实际密码为:@#test1234
# 上述示例代理IP为:127.0.0.1
# 上述示例代理端口为:8080
# Proxy settings: http://[username]:[password]@[server]:[port]
# proxy_servers:
# http: http://user:pass@corp.com:8080
# https: https://user:pass@corp.com:8080
三、第三方包离线下载及安装
3.1 导出当前环境已安装的包对应的版本信息
pip freeze > requirements.txt
requirements.txt文件内容格式
attrs==19.3.0
certifi==2019.11.28
importlib-metadata==1.5.0
more-itertools==8.2.0
packaging==20.3
pluggy==0.13.1
py==1.8.1
pyparsing==2.4.6
pytest==5.4.1
six==1.14.0
wcwidth==0.1.8
zipp==3.1.0
3.2 下载离线包
1.会同步下载相关到依赖包
2.默认下载到当前文件夹内
3.如果pip指定了国内源,可以会无法下载,亲测阿里和豆瓣的不行,清华的可以。
3.2.1 下载单个包
pip download pymysql
3.2.2 下载多个包(通过文件)
pip download -d 保存包的目录 -r requirements.txt
3.2.3下载到指定路径
pip download pymysql -d 路径
3.3 安装离线包(在requirements.txt所在目录下执行)
- 将离线包和包列表文件(requirements.txt)导入到需要安装包到电脑上
- 激活需要安装包到python环境
- 进入包列表文件(requirements.txt)所在的路径下(可以通过修改此文件来决定需要安装哪些包)
- 执行命令,安装requirements.txt内对应的包
pip install --no-index --find-links 离线包存放路径 -r requirements.txt