在docker中pip使用私有源进行依赖安装依然请求外网源的问题处理

匆匆过客 提交于 2021-01-16 01:53:39

近期在进行应用容器化,需要基于python2.7.12构建应用镜像。在docker中配置了pip.conf指定使用内网源,但依然发现有依赖安装不成功。

异常信息是连接官方源失败,信息如下:

Collecting positional>=1.0.1 (from python-keystoneclient==3.5.1->-r /monitor/requirements.txt (line 7))
  Downloading http://10.xx.xxx.xxx/repository/pypi-proxy/packages/positional/1.2.1/positional-1.2.1.tar.gz
    Complete output from command python setup.py egg_info:
    Download error on https://pypi.python.org/simple/pbr/: [Errno 99] Cannot assign requested address -- Some packages may not be found!
    Couldn't find index page for 'pbr' (maybe misspelled?)
    Download error on https://pypi.python.org/simple/: [Errno 99] Cannot assign requested address -- Some packages may not be found!
    No local packages or working download links found for pbr>=1.8
    Traceback (most recent call last):
...
    distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('pbr>=1.8')

大致意思就是安装positional时需要安装pbr>=1.8的依赖,但此依赖从外网安装失败。

但在pip.conf中已经配置内网源,并且从positional的安装路径来看是生效了的。

后面把positional的源码下载下来后,在setup.py中发现里面有通过setuptools安装pbr依赖

setuptools.setup(
    setup_requires=['pbr>=1.8'],
    pbr=True)

经过查询setuptools和pip配置源的方式不一样,是通过~/.pydistutils.cfg文件来配置的。

通过在镜像时增加该文件,顺利解决了依赖安装的问题。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!