【问题标题】:TensorFlow failed to pip-install on RedHat 6TensorFlow 无法在 RedHat 6 上进行 pip 安装
【发布时间】:2016-03-23 03:31:30
【问题描述】:

我有一台 RedHat 6 机器,使用 miniconda 安装了 python,所以

]]] which python
/export/home/my-home-dir-etc-etc-etc/miniconda/bin/python
]]] which pip
/export/home/my-home-dir-etc-etc-etc/miniconda/bin/pip

Python 2.7.10 |Continuum Analytics, Inc.| (default, May 28 2015, 17:02:03) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>> import numpy
>>> numpy.__version__
'1.10.1'

我跑的时候

pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

我收到了很多日志消息,包括编译/构建错误。我不是在这里倾倒整个日志,只是我认为至关重要的部分,但如果需要可以添加更多:

 blas_info:
  C compiler: cc

 creating /tmp/tmp72IZmg/tmp
 creating /tmp/tmp72IZmg/tmp/tmp72IZmg
 compile options: '-I/usr/local/include -I/usr/include -I/export/home/my-home-dir-etc-etc-etc/miniconda/include -c'
 cc: /tmp/tmp72IZmg/source.c
 cc /tmp/tmp72IZmg/tmp/tmp72IZmg/source.o -L/usr/lib64 -lcblas -o /tmp/tmp72IZmg/a.out
 /usr/bin/ld: cannot find -lcblas
 collect2: ld returned 1 exit status
 /usr/bin/ld: cannot find -lcblas
 collect2: ld returned 1 exit status
 cc /tmp/tmp72IZmg/tmp/tmp72IZmg/source.o -L/usr/lib64 -lblas -o /tmp/tmp72IZmg/a.out
 /tmp/tmp72IZmg/tmp/tmp72IZmg/source.o: In function `main':
 source.c:(.text+0x9e): undefined reference to `cblas_ddot'
 collect2: ld returned 1 exit status
 /tmp/tmp72IZmg/tmp/tmp72IZmg/source.o: In function `main':
 source.c:(.text+0x9e): undefined reference to `cblas_ddot'
 collect2: ld returned 1 exit status
 Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-8ABmqU/numpy/setup.py", line 263, in <module>
        setup_package()
      File "/tmp/pip-build-8ABmqU/numpy/setup.py", line 255, in setup_package
        setup(**metadata)
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/core.py", line 135, in setup
        config = configuration()
      File "/tmp/pip-build-8ABmqU/numpy/setup.py", line 156, in configuration
        config.add_subpackage('numpy')
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/misc_util.py", line 1002, in add_subpackage
        caller_level = 2)
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/misc_util.py", line 971, in get_subpackage
        caller_level = caller_level + 1)
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/misc_util.py", line 908, in _get_configuration_from_setup_py
        config = setup_module.configuration(*args)
      File "numpy/setup.py", line 17, in configuration
          config.add_subpackage('linalg')
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/misc_util.py", line 1002, in add_subpackage
          caller_level = 2)
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/misc_util.py", line 971, in get_subpackage
          caller_level = caller_level + 1)
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/misc_util.py", line 908, in _get_configuration_from_setup_py
          config = setup_module.configuration(*args)
      File "numpy/linalg/setup.py", line 26, in configuration
          lapack_info = get_info('lapack_opt', 0) # and {}
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/system_info.py", line 372, in get_info
          return cl().get_info(notfound_action)
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/system_info.py", line 562, in get_info
          self.calc_info()
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/system_info.py", line 1571, in calc_info
          blas_info = get_info('blas')
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/system_info.py", line 372, in get_info
          return cl().get_info(notfound_action)
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/system_info.py", line 562, in get_info
          self.calc_info()
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/system_info.py", line 1690, in calc_info
          lib = self.has_cblas(info)
      File "/tmp/pip-build-8ABmqU/numpy/numpy/distutils/system_info.py", line 1733, in has_cblas
          extra_postargs=info.get('extra_link_args', []))
      File "/export/home/my-home-dir-etc-etc-etc/miniconda/lib/python2.7/distutils/ccompiler.py", line 700, in link_executable
          debug, extra_preargs, extra_postargs, None, target_lang)
      File "/export/home/my-home-dir-etc-etc-etc/miniconda/lib/python2.7/distutils/unixccompiler.py", line 200, in link
          raise LinkError, msg

 distutils.errors.LinkError: Command "cc /tmp/tmp72IZmg/tmp/tmp72IZmg/source.o -L/usr/lib64 -lblas -o /tmp/tmp72IZmg/a.out" failed with exit status 1

我该如何解决这个问题?谢谢!

【问题讨论】:

  • 您是否尝试以超级用户权限运行pip
  • @Quirk 好的,用sudo 重新运行它,现在只有一条错误消息:tensorflow-0.5.0-cp27-none-linux_x86_64.whl is not a supported wheel on this platform. 我搜索了一个解决方案,但到目前为止我发现的唯一一个建议是我我正在尝试在 32 位机器上安装 64 位机器的轮子。但我很确定我有一个 64 位系统,所以不确定发生了什么。我想知道这是不是因为我有 RedHat 6 而不是 RedHat 7 或 Ubuntu
  • pip 使用文件名来检查兼容性。也许检查 uname -a 看看你的 linux 认为它是什么?

标签: python installation redhat tensorflow


【解决方案1】:

好像你缺少 cblas 库:

/usr/bin/ld: cannot find -lcblas
...
 distutils.errors.LinkError: Command "cc /tmp/tmp72IZmg/tmp/tmp72IZmg/source.o -L/usr/lib64 -lblas -o /tmp/tmp72IZmg/a.out" failed with exit status 1

尝试运行yum install blas blas-devel

【讨论】:

  • 正如上面 Quirk 建议的那样,我用 sudo 重新运行,但现在得到了一个不同的错误。不确定安装 blas 是否真的有帮助。
  • 之前的错误甚至没有启动编译过程,因为是系统级别的权限错误。按照我的建议安装 blas 库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 2021-12-06
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多