2016-06-01 13 views
0

以下のコードはMySQLDBでpython2で完全に動作しますが、どうすればPython3とコンパチブルにすることができますか?Python3:ReferenceError:弱参照オブジェクトが存在しなくなりました

私は同様の質問をデバッグして検索しました。

Error: Exception ignored in: > Traceback (most recent call last): File > > > "/usr/local/lib/python3.4/dist-packages/pymysql/cursors.py", line 41, in del File > "/usr/local/lib/python3.4/dist-packages/pymysql/cursors.py", line 47, in close ReferenceError: weakly-referenced object no longer exists –

class Database(): 

    def __init__(self): 
     self.host = 'localhost' 
     self.user = 'user' 
     self.password = 'pwd' 
     self.db = 'dbname' 
     self.connection = pymysql.connect(host=self.host, user=self.user, passwd=self.password, db=self.db,use_unicode=True, charset="utf8") 
     self.cursor = self.connection.cursor() 

    def storeToDB(self,ID,string,g,e): 
     import datetime 

     curr_time = datetime.datetime.now() 
     status = 0 
     try: 
      self.cursor.execute("""INSERT INTO master_data (`job_id`,`sstring`,`grl`,`erl`,`status`,`insert_timestamp`) \ 
      VALUES (%s,%s,%s,%s,%s,%s)""",(jobID,search_string,g,e,status,curr_time)) 
      self.connection.commit() 
     except: 
      self.connection.rollback() 
if __name__ == "__main__": 
    db = Database() 
    db.storeToDB(20,"hello","something.com","e.com") 
+0

あなたのサンプルコードはコンパイルすらないでしょう。正確なコードを表示するか、ローカル変数を正しく隠すようにしてください。 – karthikr

+0

しかしそれは解釈されます:) – inbinder

+0

['2to3'](https://docs.python.org/2/library/2to3.html)のようなものを調べることをお勧めします –

答えて

0

デシベルの操作終了前にいくつかのオプトインを行うようにしてください:

cursor.close() 
connection.close()