Код Python, скомпилированный на ubuntu16.04, не работает при взаимодействии с БД с использованием модуля pyodbc и предоставлении исключений sql

#python #ubuntu-16.04 #pyinstaller #pyodbc

#python #ubuntu-16.04 #pyinstaller #pyodbc

Вопрос:

У меня есть большой инструмент python, который отлично работает при выполнении двоичного файла, который был скомпилирован на компьютере ubuntu14.04, но тот же инструмент не работает при компиляции 16.04, и он выдает мне исключения sql, как показано ниже, когда мой код пытается выполнить cursor.fetchall() pyodbc-модуль python, пожалуйста, обратите внимание, что у меня установлены все драйверы odbc и free_tds на моем компьютере 16.04 с той же конфигурацией, что и в моем машина 14.04 , а версия python , которую я использую как на 14.04 , так и на 16.04 , равна 2.7.9 .

 EXCEPTION_*****: ('HY003', u'[HY003] [FreeTDS][SQL Server]Program type out of range (0) (SQLGetData)')
  

Как я компилирую : pyinstaller --onefile --clean

Но когда тот же пример кода, который не удался при выполнении в двоичном формате, работает нормально при локальном запуске исходного кода с терминала.

Кто-нибудь может мне помочь, если они столкнутся с какими-либо подобными исключениями sql из python при запуске на машинах Ubuntu16.04

Пример базы кода, который выдает исключение при выполнении после компиляции на Ubuntu16.04

 def main:
    import pyodbc
    connection = pyodbc.connect("DRIVER=FreeTDS;SERVER=Oil;PORT=xyz;DATABASE=xyz;UID=abc;PWD=abcpassword;WSID=xyz;APP=xyz;TDS_VERSION=8.0", autocommit=True)
    cursor=connection.cursor()
    q="select top 10 * from xyztable"
    execute = cursor.execute(q)
    results=cursor.fetchall()
    print results
  

Ожидаемые результаты: я должен получить результаты обратно при выполнении любого SQL-запроса из cursor.fetchall() модуля pyodbc