mssql+turbodbc cnnection not working when converted to .exe , however runs fine when it is in .py file

14 views
Skip to first unread message

Pradeep Dhamale

unread,
Oct 10, 2019, 5:00:17 AM10/10/19
to sqlalchemy
i have created a mssql connection using sqlalchemy :  mssql+turbodbc  engine,
the script runs properly when it is a .py file  , however whenever i convert the .py file to .exe using pyinstaller --one file , the exe gets generated successfully , but while executing the exe it fails.

Simon King

unread,
Oct 10, 2019, 5:07:48 PM10/10/19
to sqlal...@googlegroups.com
What is the error message when it fails?
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description.
> ---
> You received this message because you are subscribed to the Google Groups "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/54ff39e6-bcff-4545-85cf-a43f9a04f1be%40googlegroups.com.

Pradeep Dhamale

unread,
Oct 14, 2019, 1:54:43 AM10/14/19
to sqlalchemy
Hi Simon,

thanks for the response , following below is my code and attached is the snapshot of error for your reference , the code runs fine when it is in py file , however it fails when i convert it into exe. 


Code :

import pandas as pd
from pandas import DataFrame
import numpy as np
import pyodbc
from sqlalchemy import create_engine
import time
import sqlalchemy as db
import pymssql
import pyodbc
from sqlalchemy.sql import text as sa_text
from sqlalchemy.orm import sessionmaker
import os
import turbodbc


path1= "Enterpathforexcelfile"
df=pd.read_excel(path1,'Tablename' ,ignore_index=False,index_col=False)  
df.fillna('',inplace=True)

#Performaing panadas dataframe operations

engine = create_engine('mssql+turbodbc://<ID>:<Password>@<Servername>/<Database>?driver=SQL+Server+Native+Client+10.0')

connection=engine.connect()
query="delete from Tablename;"
engine.execute(query)

#transfer dataframe to sql server
df.to_sql('Tablename', connection, schema='schemaname',index=False ,if_exists='append',chunksize=50000)    





On Friday, October 11, 2019 at 2:37:48 AM UTC+5:30, Simon King wrote:
What is the error message when it fails?

On Thu, Oct 10, 2019 at 10:00 AM Pradeep Dhamale
<pradeepdh...@gmail.com> wrote:
>
> i have created a mssql connection using sqlalchemy :  mssql+turbodbc  engine,
> the script runs properly when it is a .py file  , however whenever i convert the .py file to .exe using pyinstaller --one file , the exe gets generated successfully , but while executing the exe it fails.
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description.
> ---
> You received this message because you are subscribed to the Google Groups "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to sqlal...@googlegroups.com.
errorsnap.png

Simon King

unread,
Oct 14, 2019, 7:04:08 AM10/14/19
to sqlal...@googlegroups.com
Looks like you need to convince PyInstaller to include the turbodbc
library in your executable. This would be a PyInstaller question
rather than an SQLAlchemy one.

I haven't used PyInstaller, but typically these tools analyse your
source code to see which modules you are importing, and include those
in the executable. I suspect nothing in your application is explicitly
importing turbodbc, so PyInstaller doesn't know that it's necessary to
include it.

A quick google suggests that maybe you need to write a PyInstaller
hook (https://pyinstaller.readthedocs.io/en/stable/hooks.html) that
adds the turbodbc package to a list of hidden imports.

Hope that helps,

Simon

On Mon, Oct 14, 2019 at 6:54 AM Pradeep Dhamale
> To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/a2f0dfbd-ef0f-4bba-a93b-98cbf4fcd651%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages