Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在heroku服务器上安装pyodbc错误命令;gcc“;退出状态为1时失败-Django项目_Django_Heroku_Pip_Pyodbc - Fatal编程技术网

在heroku服务器上安装pyodbc错误命令;gcc“;退出状态为1时失败-Django项目

在heroku服务器上安装pyodbc错误命令;gcc“;退出状态为1时失败-Django项目,django,heroku,pip,pyodbc,Django,Heroku,Pip,Pyodbc,我正在运行一个heroku应用程序,并使用pyODBC 当我试图在heroku服务器上安装pyodbc时,出现了这个错误 当我尝试将pyodbc放入requirements.txt文件时,也发生了同样的事情 我根本不明白从这个错误中该做什么,而且我似乎找不到如何使用sudo这样的命令通过windows heroku工具带进入heroku服务器 这就是错误处理过程 C:\Users\mads\businesszone>heroku run pip install pyodbc Running

我正在运行一个heroku应用程序,并使用pyODBC

当我试图在heroku服务器上安装pyodbc时,出现了这个错误

当我尝试将pyodbc放入requirements.txt文件时,也发生了同样的事情

我根本不明白从这个错误中该做什么,而且我似乎找不到如何使用sudo这样的命令通过windows heroku工具带进入heroku服务器

这就是错误处理过程

C:\Users\mads\businesszone>heroku run pip install pyodbc
Running pip install pyodbc on businesszone... up, run.9537
Collecting pyodbc
  Downloading pyodbc-3.0.10.tar.gz (68kB)
    100% |████████████████████████████████| 71kB 4.3MB/s
Installing collected packages: pyodbc
  Running setup.py install for pyodbc ... error
    Complete output from command /app/.heroku/python/bin/python -u -c "import se
tuptools, tokenize;__file__='/tmp/pip-build-jJIUQ3/pyodbc/setup.py';exec(compile
(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file_
_, 'exec'))" install --record /tmp/pip-J0_eAS-record/install-record.txt --single
-version-externally-managed --compile:
    running install
    running build
    running build_ext
    building 'pyodbc' extension
    creating build
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/tmp
    creating build/temp.linux-x86_64-2.7/tmp/pip-build-jJIUQ3
    creating build/temp.linux-x86_64-2.7/tmp/pip-build-jJIUQ3/pyodbc
    creating build/temp.linux-x86_64-2.7/tmp/pip-build-jJIUQ3/pyodbc/src
    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstr
ict-prototypes -fPIC -DPYODBC_VERSION=3.0.10 -DPYODBC_UNICODE_WIDTH=2 -I/Applica
tions/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacO
SX10.8.sdk/usr/include -I/app/.heroku/python/include/python2.7 -c /tmp/pip-build
-jJIUQ3/pyodbc/src/cnxninfo.cpp -o build/temp.linux-x86_64-2.7/tmp/pip-build-jJI
UQ3/pyodbc/src/cnxninfo.o -Wno-write-strings
    cc1plus: warning: command line option `-Wstrict-prototypes' is valid for C/O
bjC but not for C++ [enabled by default]
    In file included from /tmp/pip-build-jJIUQ3/pyodbc/src/cnxninfo.cpp:8:0:
    /tmp/pip-build-jJIUQ3/pyodbc/src/pyodbc.h:52:17: fatal error: sql.h: No such
 file or directory
     #include <sql.h>
                     ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__fil
e__='/tmp/pip-build-jJIUQ3/pyodbc/setup.py';exec(compile(getattr(tokenize, 'open
', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --r
ecord /tmp/pip-J0_eAS-record/install-record.txt --single-version-externally-mana
ged --compile" failed with error code 1 in /tmp/pip-build-jJIUQ3/pyodbc/
C:\Users\mads\businesszone>heroku运行pip安装pyodbc
正在businesszone上运行pip安装pyodbc。。。起来,跑
收集pyodbc
下载pyodbc-3.0.10.tar.gz(68kB)
100% |████████████████████████████████| 71kB 4.3MB/s
安装收集的软件包:pyodbc
正在运行pyodbc的setup.py安装。。。错误
从命令/app/.heroku/python/bin/python-u-c“import-se”完成输出
tuptools,tokenize;uuu文件uuu='/tmp/pip-build-jJIUQ3/pyodbc/setup.py';exec(编译
(getattr(tokenize,'open',open)(_文件_).read().replace('\r\n','\n'),_文件_
_,'exec'))“安装--record/tmp/pip-J0_eAS-record/install-record.txt--single
-外部管理的版本--编译:
正在运行的安装
运行构建
运行build_ext
构建“pyodbc”扩展
创建构建
创建build/temp.linux-x86_64-2.7
创建build/temp.linux-x86_64-2.7/tmp
创建build/temp.linux-x86_64-2.7/tmp/pip-build-jJIUQ3
创建build/temp.linux-x86_64-2.7/tmp/pip-build-jJIUQ3/pyodbc
创建build/temp.linux-x86_64-2.7/tmp/pip-build-jJIUQ3/pyodbc/src
gcc-pthread-fno严格别名-g-O2-DNDEBUG-g-fwrapv-O3-Wall-Wstr
ict原型-fPIC-DPYODBC_版本=3.0.10-DPYODBC_UNICODE_宽度=2-I/Applica
tions/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacO
SX10.8.sdk/usr/include-I/app/.heroku/python/include/python2.7-c/tmp/pip构建
-jJIUQ3/pyodbc/src/cnxninfo.cpp-o build/temp.linux-x86_64-2.7/tmp/pip-build-jJI
UQ3/pyodbc/src/cnxninfo.o-Wno写字符串
cc1plus:警告:命令行选项“-Wstrict Prototype”对C/O有效
BJC但不是C++(默认启用)
在/tmp/pip-build-jJIUQ3/pyodbc/src/cnxninfo.cpp中包含的文件中:8:0:
/tmp/pip-build-jJIUQ3/pyodbc/src/pyodbc.h:52:17:致命错误:sql.h:没有这样的错误
文件或目录
#包括
^
编译终止。
错误:命令“gcc”失败,退出状态为1
----------------------------------------
命令“/app/.heroku/python/bin/python-u-c”导入setuptools,标记化__菲尔
e_u_='/tmp/pip-build-jJIUQ3/pyodbc/setup.py';exec(编译)getattr(标记化,'打开
,打开)(_文件_).read().replace('\r\n','\n'),_文件_,'exec'))安装--r
ecord/tmp/pip-J0_eAS-record/install-record.txt——单一版本
ged--compile“在/tmp/pip-build-jJIUQ3/pyodbc中失败,错误代码为1/
我还尝试通过pip和thorugh安装一些旧的pyodbc版本,zip来自旧的google代码项目:



更新::您需要制作自己的heroku buildpack。见图。


您没有安装unixODBC开发包。我不确定如何在Heroku上安装,但以下是两个示例:

Ubuntu示例:

sudo apt-get install unixodbc unixodbc-dev
CentOS的示例:

sudo yum install unixODBC-devel

您可能还需要考虑安装virtualenv,而不是在系统范围内安装
pyodbc

,谢谢您的回复@flipperPA!Heroku服务器不支持sudo命令。我想我需要研究如何在Heroku服务器上安装unixodbc之类的模块。我有一个virtualenv,我只是执行了强制执行错误的命令-可能应该说明这一点。@MadsVJ你找到了这样做的方法吗?我改用pypyODBC。你找到了解决方案吗?@whieronymus see updatethaks@MadsVJ你找到并运行了吗?我最终使用了在Heroku Buildpack页面上找到的另一个Buildpack和驱动程序。我没有看到一个适用于unixodbc/pyodbc,但是有一个适用于freeTDS/pymssql()。我测试了pymssql库,api/功能与pyodbc(几乎)相同。因此,我将我现有的代码(实际上只有一个小类)从pyodbc移植到pymssql,安装了buildpack,现在正在运行。唯一需要注意的是,我正在使用的buildpack的github存储库已经三年没有更新了。现在我将使用它,到时候,我将考虑创建自己的构建包。阅读文档(针对heroku buildpacks)时,有些内容让我不知所措,因此我将坚持目前的做法,并在需要时进行重构。我最终使用了另一个数据库解决方案,只是每周从公司数据库上传转储。