1、要求
python版本3.6,要求离线安装版本适配的pandas。
2、问题
公司专用网络无法连接互联网,但是有专属的镜像源。
所以无法一键通过pip install pandas=1.1.5来自动安装依赖的包。
3、解决
由于以下步骤都是在公司内网上进行的,所以没有图。
方法一:手动安装所有依赖的包
1)先去镜像源中把pandas的离线whl文件下载下来
得到一个whl文件:pandas-1.1.5-cp36-cp36m-win_amd64.whl(关于包名的含义,可以看pip:离线安装第三方包)
2)在该文件夹中调出命令行,输入pip install pandas-1.1.5-cp36-cp36m-win_amd64.whl
会提示:Could not find a version that satisfies the requirement python-dateutil>=2.7.3. No matching distribution found for python-dateutil>=2.7.3
说明缺少依赖包python-dateutil,且版本最低为2.7.3。
再去镜像源中将python-dateutil 2.7.3的whl文件下载下来,用pip install安装。
3)期间会遇到一系列的依赖包缺失的问题,解决方法同上
最终要安装的包有:six 1.5、python-dateutil 2.7.3、pytz 2017.2、numpy-1.15.4
将这些依赖包都通过如上方式安装完毕。
4)回过头来进行第2步,安装pandas
此时就会看到Successfully installed pandas-1.1.5。
方法二:为pip设置离线镜像源
学习自:设pip默认镜像源_pip设置默认镜像源-CSDN博客
1)随便打开一个文件夹,在地址栏中输入 %APPDATA%
2)在该目录下创建一个pip文件夹,再在该文件夹下创建一个pip.ini文件
3)编辑该文件,添加如下内容
[global] timeout = 6000 index-url = 离线镜像源前缀/simple/ trusted-host = 镜像源host(三级域名或IP,不要端口)
注意:
①前缀如果不写http或https,默认是https;这会导致那些以http为前缀的镜像源无法访问;②离线镜像源一般是非受信的镜像源,为了正常使用,需要加trusted-host,后跟这个镜像源的host(三级域名、IP),不要加端口。
4)保存pip.ini
5)之后就可以直接用pip install xxx了,所有依赖的包也会被关联下载
可能出现的问题:
1)Url XXX is ignored.It is either a non-existing path or lacks a specific sheme
原因:上文第3步中,index-url没写明确协议是http还是https,不写时默认按https处理。当采用http协议时就会出现这种问题。
解决方案:在镜像源前缀之前加上http://
2)The repository located at pypi.tuna.tsinghua.edu.cn is not a trusted or secure host
原因:镜像源不被信任
解决方案:在ini文件中加上trusted-host行,且trusted-host取值时只写域名或IP,不要端口。