Bonjour

J'ai le code suivant qui lit un fichier de configuration en vue de se connecter a une database :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
class ScriptorDatabase():
    '''
        Class which manages databases
    '''
    def __init__(self):
        # read configuration file
        CFG_PATH = os.path.dirname(__file__).strip('classes') + 'scriptor.cfg'
 
        config = ConfigParser.RawConfigParser()
        config.read(CFG_PATH)
 
 
        if config.get('database', 'DB_USER'):
            self.DB_USER = config.get('database', 'DB_USER')
 
        if config.get('database', 'DB_PASSWD'):
            self.DB_PASSWD = config.get('database', 'DB_PASSWD')
 
        if config.get('database', 'DB_HOST'):
            self.DB_HOST = config.get('database', 'DB_HOST')
 
        if config.get('database', 'DB_NAME'):
            self.DB_NAME = config.get('database', 'DB_NAME')
 
        self.DB_CONNEX = builder()(user=self.DB_USER, passwd=self.DB_PASSWD, host=self.DB_HOST, db=self.DB_NAME)
Mais recois le message d'erreur suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Traceback (most recent call last):
  File "/home/moi/scriptor/classes/scriptorDatabase.py", line 61, in <module>
    d = scriptorDatabase()
  File "/home/moi/scriptor/classes/scriptorDatabase.py", line 33, in __init__
    self.DB_CONNEX = builder()(user=self.DB_USER, passwd=self.DB_PASSWD, host=self.DB_HOST, db=self.DB_NAME)
  File "/usr/lib/pymodules/python2.7/sqlobject/mysql/mysqlconnection.py", line 51, in __init__
    DBAPI.__init__(self, **kw)
  File "/usr/lib/pymodules/python2.7/sqlobject/dbconnection.py", line 256, in __init__
    DBConnection.__init__(self, **kw)
TypeError: __init__() got an unexpected keyword argument 'passwd'
Je precise que le password en question est Gr87^%j

Je suppose que l'erreur est due aux caracteres speciaux mais je ne vois pas comment
enpecher python de les interpreter, ni a quel niveau du code.

Merci