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系统下相同的内容
1 2 3 4 | [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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性