• pip离线安装Bottleneck报Error解决


    1. 前言

    操作系统:centos7.2

    python版本:3.7

    pip版本:20.2.4

    公司一个AI项目需要部署,但是客户的服务器环境是在内网,无法联网更新,于是在公司开发服创建了一个同样的环境,离线下载安装包后再进行安装,关于离线安装可以参考:python使用pip离线安装库

    因为使用了一个叫fastai的库,需要依赖Bottleneck,然后这个包就真的成为我的bottleneck了。

    因为怀疑是前面依赖问题,于是将numpy之类的依赖安装后,再单独安装Bottleneck,安装命令:

    pip install Bottleneck-1.3.2.tar.gz

    报错:

    Processing ./Bottleneck-1.3.2.tar.gz
       Installing build dependencies ... error
       ERROR: Command errored out with exit status 1:
        command: /usr/local/python3/bin/python3.7 /usr/local/python3/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-1g2lyacs/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel 'numpy==1.13.3; python_version=='"'"'2.7'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.13.3; python_version=='"'"'3.5'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.13.3; python_version=='"'"'3.6'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.14.5; python_version=='"'"'3.7'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.17.3; python_version>='"'"'3.8'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'2.7'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'3.5'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'3.6'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'3.7'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.17.3; python_version>='"'"'3.8'"'"' and platform_system=='"'"'AIX'"'"''
            cwd: None
       Complete output (16 lines):
       Ignoring numpy: markers 'python_version == "2.7" and platform_system != "AIX"' don't match your environment
       Ignoring numpy: markers 'python_version == "3.5" and platform_system != "AIX"' don't match your environment
       Ignoring numpy: markers 'python_version == "3.6" and platform_system != "AIX"' don't match your environment
       Ignoring numpy: markers 'python_version >= "3.8" and platform_system != "AIX"' don't match your environment
       Ignoring numpy: markers 'python_version == "2.7" and platform_system == "AIX"' don't match your environment
       Ignoring numpy: markers 'python_version == "3.5" and platform_system == "AIX"' don't match your environment
       Ignoring numpy: markers 'python_version == "3.6" and platform_system == "AIX"' don't match your environment
       Ignoring numpy: markers 'python_version == "3.7" and platform_system == "AIX"' don't match your environment
       Ignoring numpy: markers 'python_version >= "3.8" and platform_system == "AIX"' don't match your environment
       WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fcfa878e3c8>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
       WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fcfa6008e48>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
       WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fcfa6008358>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
       WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fcfa6008780>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
       WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fcfa6008048>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
       ERROR: Could not find a version that satisfies the requirement setuptools (from versions: none)
       ERROR: No matching distribution found for setuptools
       ----------------------------------------
    ERROR: Command errored out with exit status 1: /usr/local/python3/bin/python3.7 /usr/local/python3/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-1g2lyacs/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel 'numpy==1.13.3; python_version=='"'"'2.7'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.13.3; python_version=='"'"'3.5'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.13.3; python_version=='"'"'3.6'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.14.5; python_version=='"'"'3.7'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.17.3; python_version>='"'"'3.8'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'2.7'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'3.5'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'3.6'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'3.7'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.17.3; python_version>='"'"'3.8'"'"' and platform_system=='"'"'AIX'"'"'' Check the logs for full command output.

    将numpy降为里面要求的1.16.0版本,依旧无法通过。

    按照官网的教程:https://pypi.org/project/Bottleneck/,解压后在文件夹中进行安装:

    pip install .

    依旧报一样的问题。

    2. 解决

    用google上查到的大多说是项目本身的bug,pip无能为力之类的,所以只能从编译项目的角度去解决。

    通过阅读解压后的文件,我在一个叫versioneer.py的文件中找到了下面这段话:

    Versioneer will look for `.git` in parent directories, and most operations

    should get the right version string. However `pip` and `setuptools` have bugs

    and implementation details which frequently cause `pip install .` from a

    subproject directory to fail to find a correct version string (so it usually

    defaults to `0+unknown`).

    `pip install --editable .` should work correctly. `setup.py install` might

    work too.

    Pip-8.1.1 is known to have this problem, but hopefully it will get fixed in

    some later version.

    尝试:

    pip install --editable

    依旧有错。

    继续尝试:

    python setup.py install

    没想到就可以了,安装完成后没有报错,使用

    pip list | grep Bottle

    显示:

    Bottleneck         1.3.2

    安装成功。

    3. 参考

    (完)

  • 相关阅读:
    Java抽象类和接口和继承之间关系
    Java程序中解决数据库超时与死锁
    怎样成为一名出色的Java Web程序员?
    Java中断线程的方法
    Java 集合框架(Collection)和数组的排序
    StringBuffer帮你减轻Java的负担
    学好Java开发的关键七步
    kvm的分层控制
    一个高扩展高可用高负载的应用架构的诞生记(原创)
    防火墙规则
  • 原文地址:https://www.cnblogs.com/harrymore/p/13854363.html
Copyright © 2020-2023  润新知