• py faster rcnn的lib编译出错问题


    真是好事多磨啊,计算机系统依然是14.04,而cuda依然是8.0,唯一不同的是时间不一样,下载的各种库版本有差别,GPU的driver不一样。

    但是这样就出问题了,py-faster rcnn的lib库编译时总是提示错误。

    网上搜了开始的相关帖子都提示说是gcc的版本问题,但是我后来问了一下在原来单位的同事,gcc的版本也没问题,版本和原来用的一样。后来我把cython卸载(0.26.1),从新安装旧版本(0.19.1)依然同样的错误,我没有继续追究版本问题。昨天看到github上的一个帖子说是把-R改成 -Wl,-rpath=就可以了。参考:https://github.com/rbgirshick/py-faster-rcnn/issues/706

    开始不知道改那些地方,昨天看了一天的Cython,看到下午四点钟头都打了,可以下班就马上滚了,不过也大概知道了编译的过程。今天一来,再顺着找,编译过程中根据setup.py文件里import的文件,有distutils.extension,也有Cython.Distutils下的。于是顺着distutils找。开始在distutils下找到了extension.py文件,里面定了了setup编译时的规则,但是我仔细看了一下,是如果传入的编译命令是哪一个,应该怎么定义。如果传入的是-R,那么应该怎么链接,其中有runtime_library_dir,而这个的值是哪里来的呢?于是再找,那就是找能对编译规则有影响的。换个地方找,找distutils下的,追个找了一下,看到文件uixccomplier.py,觉得应该是这里定义了对cython的setup编译的规则。果然打开看到了有一个函数是runtime_library_dir的生成定位规则,终于找到这个地方了,把返回-R +dir的地方改成'-Wl,-rpath='+dir。然后回到py-faster-rcnn的lib下,编译通过,一切搞定。

    归咎原因应该是我安装的anaconda2里面的python的一些包升级了,规则改了。其实我在跑py-faster-rcnn时,有几个地方提示说默认是float,而我用来做index,是不可以的。因此,python版本的影响吧。我决定把anaconda换到低版本试试,不过也挺奇怪,我半年前下载的anaconda2,是没问题的,难道最近有更新很多吗?

    转载请注明出处,谢谢。
  • 相关阅读:
    Linux网络连接图标不见了
    使用fiddler4实现手机抓包的相关配置
    selenium之 时间日期控件的处理
    vue 上传文件示例
    从入门到自闭之Python解释器安装
    从入门到自闭--并发编程
    Python高阶操作--关于数据清洗
    Python高阶操作--数据分析的理解
    python --数据库、网络编程
    python基础
  • 原文地址:https://www.cnblogs.com/jianyingzhou/p/7722570.html
Copyright © 2020-2023  润新知