2017-05-24 11 views
1

그래서 이전 스크립트를 사용하여 보간을 통해 만들어야하는 IP 주소, 포트 및 URL을 지정해야하는 스크립트 용 작은 구성 파일을 작성하려고했습니다. 내 config.ini은 다음과 같습니다이 부분을 이해하지 못함 ConfigParser.InterpolationSyntaxError

다음과 같이 나는이 config 파일을 구문 분석 내 스크립트에서
[Client] 
recv_url : http://%(recv_host):%(recv_port)/rpm_list/api/ 
recv_host = 172.28.128.5 
recv_port = 5000 
column_list = Name,Version,Build_Date,Host,Release,Architecture,Install_Date,Group,Size,License,Signature,Source_RPM,Build_Host,Relocations,Packager,Vendor,URL,Summary 

: 내 스크립트를 실행하는 경우,이 결과

config = SafeConfigParser() 
config.read('config.ini') 
column_list = config.get('Client', 'column_list').split(',') 
URL = config.get('Client', 'recv_url') 

:

Traceback (most recent call last): 
    File "server_side_agent.py", line 56, in <module> 
    URL = config.get('Client', 'recv_url') 
    File "/usr/lib64/python2.7/ConfigParser.py", line 623, in get 
    return self._interpolate(section, option, value, d) 
    File "/usr/lib64/python2.7/ConfigParser.py", line 691, in _interpolate 
    self._interpolate_some(option, L, rawval, section, vars, 1) 
    File "/usr/lib64/python2.7/ConfigParser.py", line 716, in _interpolate_some 
    "bad interpolation variable reference %r" % rest) 
ConfigParser.InterpolationSyntaxError: bad interpolation variable reference '%(recv_host):%(recv_port)/rpm_list/api/' 

내가 가진 디버깅을 시도하여 오류 코드가 한 줄 더 표시되었습니다.

... 
ConfigParser.InterpolationSyntaxError: bad interpolation variable reference '%(recv_host):%(recv_port)/rpm_list/api/' 
Exception AttributeError: "'NoneType' object has no attribute 'path'" in <function _remove at 0x7fc4d32c46e0> ignored 

여기에서 나는 붙어있다. 이 _remove 함수가 있어야하는 위치를 모르겠습니다 ... 메시지가 무엇을 말하고 있는지 검색하려고했지만 솔직히 나는 전혀 모른다. 그래서 ...

  1. 내 코드에 문제가 있습니까?
  2. '<의 _remove at ...>'의미는 무엇입니까?

답변

2

정말 내 config.ini 파일에 실수가있었습니다. 나는 %(...)s의 끝에 s을 필요한 구문 요소로 간주하지 않았습니다. 나는 그것이 "문자열"을 의미한다고 생각하지만 실제로 이것을 확인할 수는 없습니다.