赞
踩
在工作中,有可能遇到这样一个问题:我前天安装的某个库还能用,今天怎么就不能用了呢?原因很可能是这样的:某些库的依赖包版本冲突了。
假设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,验证是否安装成功:
可以发现,均无报错,可以正常使用。
以下是整个环境依赖:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。