Код Python, скомпилированный на Ubuntu16.04, не работает при взаимодействии с БД с помощью модуля pyodbc и выдачи исключений SQL - PullRequest
1 голос
/ 07 апреля 2019

У меня есть большой инструмент 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

...