pip:离线安装第三方包(2)

发布时间 2024-01-03 11:06:52作者: ShineLe

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,不要端口。