Форум сайта python.su
Использую QtCore.QTemporaryFile для создания файла, в котором создается БД sqlite. Для работы с БД использую sqlalchemy, но после завершения программы временный файл не удаляется с диска, при попытке удалить “вручную” с помощью os.remove(flName) выдает ошибку “Файл занят другим процессом”
Возможно sqlalchemy не освобождает какие-то ресурсы, несмотря на
session.connection().close()
session.close_all()
Отредактировано (Янв. 23, 2011 15:39:40)
Офлайн
убей все процессы python в диспетчере задач.
Офлайн
roku151Конечному пользователю вряд ли понравится такое решение.
убей все процессы python в диспетчере задач.
Офлайн
может стоит создавать бд в памяти.
# in-memory database
e = create_engine('sqlite://')
Отредактировано (Янв. 23, 2011 18:35:07)
Офлайн
roku151БД создается во временном файле, чтобы в случае аварийного завершения программы - отключения электричества, зависания системы, при следующем запуске программы можно было восстановить данные.
а зачем конечному пользователю нужно будет удалять дб?)
может стоит создавать бд в памяти?
Офлайн
from sqlalchemy.pool import NullPool
to_engine = create_engine('sqlite:///%s' % temp_file_name, poolclass=NullPool)
Офлайн
Спасибо - заработало!
Офлайн