当前位置: 首页 > news >正文

如何匹配Python库的版本?

      在工作中,有可能遇到这样一个问题:我前天安装的某个库还能用,今天怎么就不能用了呢?原因很可能是这样的:某些库的依赖包版本冲突了。

假设A库依赖a包版本1.1版本,B库依赖a包的1.0版本。

我们在前天安装了A库,且能正常使用,此时a包为1.1版本。

但是在今天我们安装了B库,它的依赖a包为1.0版本,所以必定导致a包的版本降低。

此时,B包可以正常使用,但是A包优与依赖的a包版本降低导致无法使用。

解决方法:去找是哪些依赖的版本不匹配了,把他们给匹配好。

      我们举个例子来说:以同时使用  imbalanced_learn  和  statsmodels 库为最终目的。我们该怎么办?

        1、找各自库的官网,官网上会给出安装依赖,找官网是最正确的做法,不要去网上找乱七八糟的说明,基本上都是没用的。

        2、imbalanced_learn官网:百度查找,第二个就是。

附上网址:imbalanced-learn documentation — Version 0.8.1

 

 一般来说官网都是最新的版本的库,显示最新的依赖。

如何查找特定的版本的依赖呢?

方法一:官网上一般都有,看下开源历史就能找到。

方法二:直接去下载指定版本的 .whl文件,更改后缀后解压缩,去文件里面找,都会有明确的注明,比如去查找  0.5.0 版本的 imbalanced_learn。

 

 现在可以总结0.5.0版本的依赖:

Requires-Dist: numpy (>=1.11)
Requires-Dist: scipy (>=0.17)
Requires-Dist: scikit-learn (>=0.21)
Requires-Dist: joblib (>=0.11)

  3、statsmodels官网:百度查找,第一个就是。

 

 同样,我们还去找指定版本的依赖,比如:0.11.0

方法一:官网找API文档。

 

 现在可以总结0.11.0版本的依赖:

Python >= 3.5

NumPy >= 1.14

SciPy >= 1.0

Pandas >= 0.21

Patsy >= 0.5.1

最终将 imbalanced_learn  和  statsmodels 依赖汇总:

Requires-Dist: numpy (>=1.11)
Requires-Dist: scipy (>=0.17)
Requires-Dist: scikit-learn (>=0.21)
Requires-Dist: joblib (>=0.11)
Python >= 3.5
NumPy >= 1.14
SciPy >= 1.0
Pandas >= 0.21
Patsy >= 0.5.1

自己匹配合适的依赖,并确定安装顺序:

Python = 3.6
joblib (>=0.11)
NumPy = 1.14
SciPy = 1.0
Pandas = 0.21
Patsy = 0.5.1
scikit-learn = 0.21
imbalanced_learn = 0.5.0
statsmodels = 0.11.0

最终在虚拟环境中安装测试是否匹配成功:

#创建虚拟环境
conda create -n hjpp python=3.6.0

#激活虚拟环境
activate hjpp

#安装依赖包
pip install numpy==1.14.0
pip install scipy==1.0
pip install pandas==0.21
pip install patsy==0.5.1
pip install scikit-learn==0.21
pip install imbalanced_learn==0.5.0
pip install statsmodels==0.11.0

 

 打开python,验证是否安装成功:

  可以发现,均无报错,可以正常使用。

  以下是整个环境依赖:

相关文章:

  • 如何将 Windows 2000 安装移到不同的硬件
  • 如何安装Redis?
  • 华中之旅--逃离广州(二)
  • 人人网如何注册与设置密码
  • 华中之旅-- 瑞雪岳阳城
  • 谈一下分布式爬虫
  • redis-desktop-manager安装
  • 时间管理的40项准则
  • centos7安装redis
  • centos7安装anaconda
  • 会移动的文字(Marquee)
  • 配置其他机器连接Redis
  • 如何让程序检测你的按键,实现WEB热键功能呢?
  • 如何编写分布式爬虫
  • 有一些gmail邀请,要的跟进!
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CAP 一致性协议及应用解析
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java精华积累:初学者都应该搞懂的问题
  • Netty 4.1 源代码学习:线程模型
  • Python爬虫--- 1.3 BS4库的解析器
  • quasar-framework cnodejs社区
  • React-flux杂记
  • React中的“虫洞”——Context
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Spring核心 Bean的高级装配
  • 半理解系列--Promise的进化史
  • 从零开始学习部署
  • 判断客户端类型,Android,iOS,PC
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 如何优雅地使用 Sublime Text
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 算法之不定期更新(一)(2018-04-12)
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​MySQL主从复制一致性检测
  • ​ssh免密码登录设置及问题总结
  • ​一些不规范的GTID使用场景
  • #{} 和 ${}区别
  • $NOIp2018$劝退记
  • (1)常见O(n^2)排序算法解析
  • (MATLAB)第五章-矩阵运算
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (二)pulsar安装在独立的docker中,python测试
  • (六)软件测试分工
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)socket Aio demo
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET 设计一套高性能的弱事件机制
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型