pip:离线安装第三方包(2),设置镜像源

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

方法二:手动下载所有whl(包括依赖包),但是安装时自动检测并安装

学习自:离线安装Python第三方库及依赖包 - 睡觉大王Risen - 博客园

pip 离线安装与pip install --no-index --find-links选项的使用-CSDN博客

1)先把six 1.5、python-dateutil 2.7.3、pytz 2017.2、numpy-1.15.4的whl文件包下载下来(方法1的第一步)

如果没有whl文件,用tar.gz也可以

2)使用pip install指令和参数--no-index和-f

去pandas的whl文件所在的目录下,执行如下指令:

pip install pandas-1.1.5-cp36.whl --no-index -f D:\用户\Le\Desktop\pypro\lib

使用--no-index代表忽略pip默认的依赖包索引(不忽略时会导致版本对不上)。

使用-f(或者--find-links)代表去指定的目录下查找依赖包的whl文件。

--no-index和-f通常联合使用,代表去指定目录下查找符合条件的包的whl文件,这样在离线安装时,会从指定的目录下连续安装所有的包,直到目标包安装完成。

注意

这里的-f后跟的路径不加引号,否则会报错路径不存在

方法三:为pip设置离线镜像源(Windows系统)

学习自:设pip默认镜像源_pip设置默认镜像源-CSDN博客

本节为Windows系统下离线镜像源的设置,如果是Linux系统请往下翻看方法四。

1)Windows操作系统下,随便打开一个文件夹,在地址栏中输入 %APPDATA%;

2)在该目录下创建一个pip文件夹,再在该文件夹下创建一个pip.ini文件

3)编辑该文件,添加如下内容

[global]
timeout = 6000
index-url = 离线镜像源前缀/simple/
trusted-host = 镜像源host(三级域名或IP,不要端口和协议)

注意:

①前缀如果不写http或https默认是https;这会导致那些以http为前缀的镜像源无法访问;

②离线镜像源一般是非受信的镜像源,为了正常使用,需要加trusted-host,后跟这个镜像源的host(三级域名、IP),不要加端口。

③镜像源host地址是指 http://xxx.xxx.com:8081/.../simple中的xxx.xxx.com(不要端口和协议)

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

3)Could not find a version that satisfies the requirement 安装包名字 (from versions: )

原因:在trusted-host中加了http前缀

解决方案:删去http前缀,只保留host,即xxx.xxx.com

方法四:为pip设置离线镜像源(Linux系统)

参考:怎么给自己的python换源_windows/linux下如何更换Python的pip源-CSDN博客

Python 用pip config set命令修改pip为国内镜像源 附打开文件夹修改和用命令行修改两种方法-CSDN博客

1)在terminal中输入pip config set http://1

这里用http://1只是为了测试和验证pip.conf文件的路径,不是为了实际修改什么

此时会得到一个输出:Writing to xxx/xxx/pip.conf

这里的pip.conf就是方法二Windows操作系统下的pip.ini文件

2)cd进入之前的pip.conf所在目录,vim pip.conf,输入在Windows系统下相同的内容

[global]
timeout = 6000
index-url = http:///xxx/simple/
trusted-host = xxx.xxx.xxx(镜像源host,是一个三级域名或IP,不要端口和协议)  

3):wq退出

即可正常使用。

可能遇到的问题:

1)Could not find a version that satisfies the requirement 安装包名字 (from versions: )

原因:在trusted-host中加了http前缀

解决方案:删去http前缀,只保留host,即xxx.xxx.com

2)下载好后,在pycharm中import pandas,报错pandas不是内部或外部命令

解决方案:使用cmd或pycharm terminal的方式安装好包之后,要重启一下pycharm才能生效(或者File→Reload All from Disk),未重启时pycharm内存中的信息仍是之前的。

补充

一个包安装完毕后,会在site-package下产生两个目录(以pandas为例):pandas和pandas.dist-info

posted @ 2024-01-03 11:04  ShineLe  阅读(176)  评论(0编辑  收藏  举报