Проблемы с ODBC в строке 50 Sage с Python 3

#python #python-3.x #odbc #pyodbc #sage-line-50

#python #python-3.x #odbc #pyodbc #sage-line-50

Вопрос:

Я пытаюсь подключиться к Sage Line 50 ODBC (Великобритания). Это работает нормально, если я использую Python 2.7, когда я переключаюсь на 3.7, это не будет работать, вызывая следующую ошибку.

 pyodbc.OperationalError: ('08001', "[08001] Cannot find all files in data path (0) (SQLDriverConnect); [08001] The driver returned invalid (or failed to return) SQL_DRIVER_ODBC_VER: 24.2 (444); [08001] [Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC behavior that the application requested (see SQLSetEnvAttr). (0)")
  

Вот код, который работает на 2.7 и завершается сбоем на 3.7

     username= "username"
    password= "password"
    driver = "{Sage Line 50 v24}"
    DSN = "SageLine50v24_64"
    self.conn = pyodbc.connect(DRIVER=driver, DSN=DSN, UID=username, PSW=password)
    self.cursor = self.conn.cursor()
    print ('Connected to SAGE')
  

Я даже использовал 32- и 64-разрядные версии Python 3 без успеха. Я в полной растерянности относительно того, почему это не работает. Есть ли конфигурация в pyodbc, которую я пропускаю?

Комментарии:

1. (Также задавался вопрос на GitHub здесь .)

2. Вам нужно будет настроить ODBC. В Linux это означает редактирование odbc.ini и сборку odbcinst.ini в нужном месте.

3. Оказывается, вам не нужен параметр драйвера. Работает нормально.