AttributeError:'ParsedRequirement'对象没有属性'req'

问题描述 投票:0回答:1

我有一个具有一层的docker文件

RUN python setup.py develop

我正在使用具有三个阶段的多阶段构建,这是所有阶段都具有相同基础映像的阶段,尽管我认为这不是dockerfile的问题,但似乎是python和它的执行方式处理基础图像python:3.7-slim我在下面用这个在Travis CI上构建这个dockerfileTravis的版本信息:

docker version
Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:38 2017
 OS/Arch:      linux/amd64
Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:41:20 2017
 OS/Arch:      linux/amd64
 Experimental: false

我得到此错误,为>]

AttributeError: 'ParsedRequirement' object has no attribute 'req'

令人惊讶的是,我能够在具有docker版本19.03.2的Mac机器上使用此功能这是我的setup.py文件

import os
import shutil
import inspect
import platform
from setuptools import setup
import setuptools
try:
    from pip.req import parse_requirements
except ImportError:
    from pip._internal.req import parse_requirements

EMAIL_CONF = 'email.conf'
DL_CONF = 'dl.conf'
LINUX_CONFDIR = os.path.expanduser('~') + '/.config/bassa/'
WIN_CONFDIR = os.path.expanduser('~') + '/%app_data%/bassa/'
OSX_CONFDIR  = os.path.expanduser('~') + '/.config/bassa/'

# Utility function to read the README file.
def read(file_name):
    return open(os.path.join(os.path.dirname(__file__), file_name)).read()

base_dir = os.path.dirname(os.path.abspath(__file__))
requirements_path = os.path.join(base_dir, 'requirements.txt')

install_reqs = parse_requirements(requirements_path, session=False)

requirements = [str(ir.req) for ir in install_reqs]

### Set configs ###
if platform.system() == 'Linux':
    configdir = LINUX_CONFDIR
elif platform.system() == 'Windows':
    configdir = WIN_CONFDIR
elif platform.system() == 'Darwin':
    configdir = OSX_CONFDIR
if not os.path.exists(configdir):
    os.makedirs(configdir)

email_conf_location = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) + "/" + EMAIL_CONF
dl_conf_location = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) + "/" + DL_CONF
shutil.copyfile(email_conf_location, configdir + EMAIL_CONF)
shutil.copyfile(dl_conf_location, configdir + DL_CONF)

###/ Set configs ###

setup(
   ...
)

请帮助我解决这个问题。

我有一个带有运行python setup.py的docker文件,其中一层具有三个阶段的多阶段构建,这是所有阶段具有相同基础映像的阶段,尽管我没有...

python docker travis-ci
1个回答
0
投票

我终于找到了解决方法,\ o /

© www.soinside.com 2019 - 2024. All rights reserved.