私は数日前に Python を使い始めました。多分私はPythonで正しくやっていないので、専門家からのアドバイスが欲しかった:
次のように、1 つのパッケージ lib に config.cfg とクラス テストがあります。
myProj/lib/pkg1/config.cfg
[api_config]
url = https://someapi.com/v1/
username=sumitk
myProj/lib/pkg1/test.py
class test(object):
def __init__(self, **kwargs):
config = ConfigParser.ConfigParser()
config.read('config.cfg')
print config.get('api_config', 'username')
#just printing here but will be using this as a class variable
def some other foos()..
今、別のパッケージの他のモジュールでテストのオブジェクトを作成したい
myProj/example/useTest.py
from lib.pkg1.test import test
def temp(a, b, c):
var = test()
def main():
temp("","","")
if __name__ == '__main__':
main()
useTest.py を実行するとエラーが発生します:
...
print config.get('api_config', 'username')
File "C:\Python27\lib\ConfigParser.py", line 607, in get
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'api_config'
useTest.py を同じパッケージに配置すると、完全に正常に動作します。
myProj/lib/pkg1/useTest.py
myProj/lib/pkg1/test.py
myProj/lib/pkg1/config.cfg
Python には、私が認識していない非常に基本的なパッケージ アクセスの概念があると思いますか、それともここで間違っていることがありますか?