2017-05-24 11 views
1

私はIPアドレス、ポート、および以前の変数を使用して補間によって作成する必要があるURLを指定する必要があるスクリプト用の小さな設定ファイルを作成しようとしました。私config.iniは次のようになります。私のスクリプトでこれを理解していないConfigParser.InterpolationSyntaxError

[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を必要な構文要素とみなしませんでした。私はそれが "文字列"を参照していると思うが、私は本当にこれを確認することができませんでした。

関連する問題