Open GoogleCodeExporter opened 9 years ago
即使直接改用del掉也不可以
---------------------
import pypyodbc, os, gc
def test():
# if comment the __del__ method in connection and cursor objects, this problem will be solved
mdb_file = "test.mdb"
db = pypyodbc.win_create_mdb(mdb_file) if not os.path.isfile(mdb_file) else mdb_file
#try:
# with pypyodbc.win_connect_mdb(mdb_file) as db_con:
# cur = db_con.cursor()
#except pypyodbc.Error, i:
# print i.__str__().decode("unicode-escape")
con = pypyodbc.win_connect_mdb(mdb_file)
cur = con.cursor()
del con,cur
print "pypyodbc version %s" % pypyodbc.version
count = 5
while count:
test()
print "# --- %d" % count
print "collected", gc.collect()
print "garbage count", gc.garbage.__len__()
print "garbage", gc.garbage
print "# ---\n"
count -= 1
----------------
----------------
pypyodbc version 1.2.0
# --- 5
collected 97
garbage count 2
garbage [<pypyodbc.Cursor instance at 0x025FB3C8>, <pypyodbc.Connection
instance at 0x025F74E0>]
# ---
# --- 4
collected 149
garbage count 4
garbage [<pypyodbc.Cursor instance at 0x025FB3C8>, <pypyodbc.Connection
instance at 0x025F74E0>, <pypyodbc.Connection instance at 0x025C5B70>,
<pypyodbc.Cursor instance at 0x0248DF30>]
# ---
# --- 3
collected 149
garbage count 6
garbage [<pypyodbc.Cursor instance at 0x025FB3C8>, <pypyodbc.Connection
instance at 0x025F74E0>, <pypyodbc.Connection instance at 0x025C5B70>,
<pypyodbc.Cursor instance at 0x0248DF30>, <pypyodbc.Connection instance at
0x025C5A30>, <pypyodbc.Cursor instance at 0x025F7850>]
# ---
# --- 2
collected 149
garbage count 8
garbage [<pypyodbc.Cursor instance at 0x025FB3C8>, <pypyodbc.Connection
instance at 0x025F74E0>, <pypyodbc.Connection instance at 0x025C5B70>,
<pypyodbc.Cursor instance at 0x0248DF30>, <pypyodbc.Connection instance at
0x025C5A30>, <pypyodbc.Cursor instance at 0x025F7850>, <pypyodbc.Connection
instance at 0x025CEC38>, <pypyodbc.Cursor instance at 0x025F76E8>]
# ---
# --- 1
collected 149
garbage count 10
garbage [<pypyodbc.Cursor instance at 0x025FB3C8>, <pypyodbc.Connection
instance at 0x025F74E0>, <pypyodbc.Connection instance at 0x025C5B70>,
<pypyodbc.Cursor instance at 0x0248DF30>, <pypyodbc.Connection instance at
0x025C5A30>, <pypyodbc.Cursor instance at 0x025F7850>, <pypyodbc.Connection
instance at 0x025CEC38>, <pypyodbc.Cursor instance at 0x025F76E8>,
<pypyodbc.Connection instance at 0x024BC7B0>, <pypyodbc.Cursor instance at
0x025F79E0>]
# ---
Original comment by Upd...@gmail.com
on 17 Oct 2013 at 11:32
fixed in version 1.2.1, thanks for reporting
Original comment by jiangwen...@gmail.com
on 16 Nov 2013 at 3:43
Original issue reported on code.google.com by
Upd...@gmail.com
on 17 Oct 2013 at 11:18Attachments: