1、问题背景

1)环境:服务器(非root)

2)需求:安装开源深度学习代码,本机cuda以及pytorch版本太低

3)操作:可能起源于删除环境变量引起的(unset)

a)查看环境变量env、printenv,查看单个变量printenv PATH或者echo $PATH

b)重置环境变量unset PATH(貌似不能删除单个路径),这个慎用!!!

c)添加环境变量export,例如export PATH=/usr/local/cuda-10.2/bin或者export                       PATH=/usr/local/cuda-10.2/bin:$PATH;另外,永久性添加在.bashrc文件中,并在命令行               source .bashrc临时添加直接在命令行执行即可。

区别:加:$PATH的表示这个路径放在最开头,那么系统检索的时候会优先选择该路径,              不加:$PATH就默认将路径放到该环境变量最后,如果前面有其他可调用的路径就不会调                 用该路径。所以最好不要使用unset,而是使用export PATH= to/your/path:$PATH。

2、遇到的问题

1)安装mmcv时候,ERROR: Failed building wheel for opencv-python

可能的解决方案:运行 pip install -vv,查看哪些依赖库未安装或者未升级。

2)ModuleNotFoundError: No module named ‘skbuild’

pip install scikit-build,如果还有依赖继续pip install下去

如果有cmake相关的,参考:

ModuleNotFoundError: No module named ‘skbuild‘解决办法_月夜竹清的博客-CSDN博客_python skbuild

3)It seems that scikit-learn has not been built correctly或者dlopen: cannot load any more object with static TLS

把scikit-learn版本降下来

4) Python error: Aborted 或者double free or corruption

遇到第4种问题是最坑的,需要定位问题出错的位置。
a)在python程序中添加如下代码,来追溯问题出现位置。

import faulthandler
faulthandler.enable()

b)GDB大法

1、在执行程序的最开头加入如下代码

import sys
def trace(frame, event, arg):print("%s, %s:%d" % (event, frame.f_code.co_filename, frame.f_lineno))return trace
sys.settrace(trace)
# 下面是原来的代码
import codecs  #
...

2、在命令行执行如下代码

gdb python

然后在弹出的窗口中执行run /path/to/script.py

(gdb) run /path/to/script.py
## wait for segfault ##

一次调试段错误(segmentation fault)的经验 - 知乎

What causes a Python segmentation fault? - Stack Overflow

然后定位到详细问题如下5):

5)ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

然后采用unset更新环境变量后还是报错,怀疑是直接用了已经下载的安装包安装的,这些安装包是错误的版本。所有采用conda清除无用安装包,参考如下:

conda clean -p      //删除缓存
conda clean -y --all //删除pkgs目录下所有的无用安装包及cache

conda清除无用安装包_万无引力-的博客-CSDN博客_conda清理安装包

Python-Opencv [ERROR: recursion is detected during loading of "cv2"_凌空的桨的博客-CSDN博客

ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation. - emanlee - 博客园

3、删除代码及虚拟环境重来 解决问题!!!

一路跟着install.readme安装下去,总共报两个错误:

1)ModuleNotFoundError: No module named ‘skbuild’

a. 这个首先注意pip版本是不是过低,有提示就先更新pip。可能错误直接就解决了。

b. 不行的话再根据2中的pip install -vv,看少什么依赖库。

c. 根据2中 2)转载的博客来解决。

2)It seems that scikit-learn has not been built correctly或者dlopen: cannot load any more object with static TLS

把scikit-learn版本降下来0.20.3,Downgrading to scikit-learn 0.20.3 makes the problem go away.

https://github.com/scikit-learn/scikit-learn/issues/14485

问题解决!!适当时候删除代码和虚拟环境重来最好,Over!!

It seems that scikit-learn has not been built correctly相关推荐

  1. Scikit Learn: 在python中机器学习

    Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...

  2. [转载]Scikit Learn: 在python中机器学习

    原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...

  3. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  4. python笔迹识别_python_基于Scikit learn库中KNN,SVM算法的笔迹识别

    之前我们用自己写KNN算法[网址]识别了MNIST手写识别数据 [数据下载地址] 这里介绍,如何运用Scikit learn库中的KNN,SVM算法进行笔迹识别. 数据说明: 数据共有785列,第一列 ...

  5. 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络

    本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...

  6. python scikit learn 关闭开源_scikit learn 里没有神经网络?

    本教程的代码和数据来自于 Springboard 的博客教程,希望能为你提供帮助.作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:ht ...

  7. scikit - learn 做文本分类

    文章来源: https://my.oschina.net/u/175377/blog/84420 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的句子,我以自 ...

  8. python基于svm的异常检测_[scikit learn]:异常检测-OneClassSVM的替代方案

    不幸的是,scikit目前只学习implements一类支持向量机和用于离群点检测的鲁棒协方差估计 通过检查2d数据上的差异,可以尝试比较这些方法(as provided in the doc):im ...

  9. Spark技术在京东智能供应链预测的应用——按照业务进行划分,然后利用scikit learn进行单机训练并预测...

    3.3 Spark在预测核心层的应用 我们使用Spark SQL和Spark RDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练.预测这些需要调用算 ...

  10. python scikit learn 封装_python的scikit-learn的主要模块和基本使用

    在从事数据科学的人中,最常用的工具就是R和Python了,每个工具都有其利弊,但是Python在各方面都相对胜出一些,这是因为scikit-learn库实现了很多机器学习算法. 加载数据(Data L ...

最新文章

  1. ip地址子网划分工具_大型视频监控网络系统如何规划ip地址?
  2. oracle 10g搭建dg,oracle 10g dg环境的搭建
  3. subprocess 模块
  4. oracle 子表数据变化时主表也会更新_亿信ABI版本重大更新,新增60余个实用新功能,还有一项黑科技...
  5. java hh mm ss_【Java基础】比较时间大小(以HH:mm:ss格式为例)
  6. java概念题_JAVA 概念笔试题
  7. Github Pages 搭建个人网站
  8. 每日一题(32)—— 联合体大小
  9. 读保护_混合ASIL系统中不同安全等级模块间的边界保护
  10. 判断无向图是否有回路有四种方法
  11. android获取文件夹里最新的文件夹,Android 获取已存在的文件所在目录下的所有文件为null。...
  12. 9 Fresh jQuery Media Players
  13. RocketMQ核心架构设计思想
  14. [导入]WCF后传系列(8):深度通道编程模型Part 1—设计篇
  15. 离破产仅一步之遥的A站,还能挺过去吗?
  16. ggtech:您有一份来自Airbnb/Google的配色方案需要查收
  17. 针对unicode对象---检测字符串是否只由数字组成
  18. 软件开发者的软实力:沟通与协作
  19. 手机内存垃圾不会清理?学会删除这几个文件夹,瞬间腾出几个G
  20. 2022-2028全球与中国电动气动转换器市场现状及未来发展趋势

热门文章

  1. gentoo linux 内核,手动升级Gentoo及其内核的方法
  2. 《剑指offer》读后感
  3. 数据结构作业3-4(周)问题F:Turn off the light(关下灯)
  4. mysql感觉表头对不齐_表头固定为什么对不齐?
  5. Java|IO流之字符流
  6. JUnit之Rule的使用
  7. python控制51单片机的红绿灯_51单片机实现红绿灯控制的代码+Proteus仿真
  8. sketchfab中文网_发布Maya模型到Sketchfab插件Sketchfab 5.0.0 For Maya 2014-2017 Win/Mac
  9. SpringBoot系列 - 使用RestTemplate
  10. HALCON灰度值变换