Вы можете поменять decimal
на cdecimal
более надежным способом, заставив его произойти до запуска любого другого кода.При запуске интерпретатор Python считывает любые файлы .pth
и выполняет все содержащиеся в них операторы import
, что позволяет нам запускать код раньше, чем любая другая программа.Я описал cdecimal
своп более подробно на моем блоге - по сути, вам нужно создать два файла:
Во-первых site-packages/my_patches.pth
, который содержит:
import my_patches
Во-вторых site-packages/my_patches.py
, который содержит код подкачки:
import sys
import cdecimal
# Ensure any import of decimal gets cdecimal instead.
sys.modules['decimal'] = cdecimal
Тогда у вас не должно быть проблем с SQLAlchemy, так как у него не будет возможности запустить предварительный обмен.