0

When I try to push the Updated Flask web application with dependencies file requirements.txt, I receive the following message which is something puzzles me where there is a mistake. I see that it looks for a file in the local directory and did not find it. I use Windows Machine.

    Running setup.py install for pyodbc: started
    remote:            Running setup.py install for pyodbc: finished with status 'error'
    remote:            Complete output from command /app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-D6Ujo7/pyodbc/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-hvSYGE-record/install-record.txt --single-version-externally-managed --compile:
    remote:            running install
    remote:            running build
    remote:            running build_ext
    remote:            building 'pyodbc' extension
    remote:            creating build
    remote:            creating build/temp.linux-x86_64-2.7
    remote:            creating build/temp.linux-x86_64-2.7/src
    remote:            gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPYODBC_VERSION=4.0.16 -DSQL_WCHART_CONVERT=1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include -I/app/.heroku/python/include/python2.7 -c src/textenc.cpp -o build/temp.linux-x86_64-2.7/src/textenc.o -Wno-write-strings
    remote:            cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
    remote:            In file included from src/textenc.cpp:2:0:
    remote:            src/pyodbc.h:56:17: fatal error: sql.h: No such file or directory
    remote:             #include <sql.h>
    remote:                             ^
    remote:            compilation terminated.
    remote:            error: command 'gcc' failed with exit status 1
    remote:
    remote:            ----------------------------------------
    remote:        Command "/app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-D6Ujo7/pyodbc/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-hvSYGE-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-D6Ujo7/pyodbc/
    remote:  !     Push rejected, failed to compile Python app.
    remote:
    remote:  !     Push failed
    remote: Verifying deploy...
    remote:
    remote: !       Push rejected to data-robot.
    remote:
    To https://git.heroku.com/data-robot.git
     ! [remote rejected] master -> master (pre-receive hook declined)
    error: failed to push some refs to 'https://git.heroku.com/data-robot.git'
mari
  • 167
  • 4
  • 15

1 Answers1

-1

In the first line of your output, it's telling you that it's trying to build pyodbc, which is python's wrapper around odbc. For that, the sql.h file is needed, which defines a bunch of functions & types for database access via odbc.
That file is not in your build path, so it's complaining. sql.h is usually part of the windows sdk, so check if you have that. The sdk is usually under

C:\Program Files (x86)\Microsoft SDKs\Windows\vx.y\include

If you don't have an sdk installed, you can download it (for free) from Microsoft.

ChrisB
  • 1
  • 2