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

小编给大家分享一下如何处理在docker中pip使用私有源进行依赖安装依然请求外网源的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

近期在进行应用容器化,需要基于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文件来配置的。

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

以上是“如何处理在docker中pip使用私有源进行依赖安装依然请求外网源的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!