2016-04-25 187 views
1

私はherokuアプリを実行していて、pyODBCを使用しています。herokuサーバにpyodbcをインストールするエラー終了ステータス "gcc"が失敗しました1 - Djangoプロジェクト

herokuサーバーにpyodbcをインストールしようとするとこのエラーが発生します。

pyodbcをrequirements.txtファイルに入れても同じことが起こります。

私はこのエラーから何をすべきか分かりませんし、Windowsのherokuツールベルトを使ってherokuサーバーにsudo apt-getのようなコマンドを使用する方法を見つけることができません。

これはエラー処理です。 https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pyodbc/pyodbc-3.0.7.zip



UPDATE ::あなたがする必要がある:

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/ 

は、私はまた、ピップを通って、ファスナーの古いGoogleのコードプロジェクトからthorugh古いpyodbcバージョンのいくつかをインストールしようとしていますあなたのheroku buildpackを作ってください。写真を参照してください。 enter image description here

help output on heroku server

+0

解決方法を見つけましたか? – whieronymus

+0

@whieronymusアップデートを参照 – MadsVJ

+0

ありがとう@MadsVJあなたはそれを稼働させましたか? 私は、Heroku Buildpacksページで見つけた別のBuildpackとドライバを使用してしまいました。私はunixodbc/pyodbcで動作するものは見当たりませんでしたが、freeTDS/pymssql(https://elements.heroku.com/buildpacks/m1schka/heroku-buildpack-python)のものがありました。私はpymssqlライブラリをテストし、api /機能性はpyodbcとほぼ同じでした。だから私はpyodbcからpymssqlにビルドパックをインストールして、今稼働している私の既存のコード(本当に小さなクラス1つ)を移植しました。 – whieronymus

答えて

5

あなたはunixODBCののdevパッケージがインストールされていません。 Ubuntuのための

例:CentOSのための

sudo apt-get install unixodbc unixodbc-dev 

例:あなたはおそらくもよいでしょう

sudo yum install unixODBC-devel 

私は2つの例をHerokuの上でインストールする方法を正確にわからないんだけど、ここにいますpyodbcのシステム全体のインストールを行うのではなく、virtualenvのインストールも検討してください。

+0

返信いただきありがとうございます、@flipperPA! Herokuサーバはsudoコマンドをサポートしていません。私はHerokuサーバにunixodbcのようなモジュールをインストールする方法を調べる必要があると思います。 私はvirtualenvを持っています、私はちょうどエラーを強制するためのコマンドを行いました - おそらくそれを述べたはずです。 – MadsVJ

関連する問題