2015-07-03 163 views
1

在使用heroku create時出現此錯誤。我知道sasl庫需要安裝,但我不知道如何將它安裝在heroku上,我知道只在本地主機上安裝它。如何安裝缺少的heroku庫?

remote:   gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=2.4.19 -IModules -I/opt/openldap-RE24/include -I/usr/include/sasl -I/usr/include -I/app/.heroku/python/include/python2.7 -c Modules/LDAPObject.c -o build/temp.linux-x86_64-2.7/Modules/LDAPObject.o 
remote:   Modules/LDAPObject.c:18:18: fatal error: sasl.h: No such file or directory 
remote:    #include <sasl.h> 
remote:       ^
remote:   compilation terminated. 
remote:   error: command 'gcc' failed with exit status 1 
remote:    
remote:   ---------------------------------------- 
remote: Command "/app/.heroku/python/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-Q1St2s/python-ldap/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-he61Ck-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-Q1St2s/python-ldap 
remote: 
remote: !  Push rejected, failed to compile Python app 
remote: 
remote: Verifying deploy.... 
remote: 
remote: ! Push rejected to shielded-beyond-8167. 
remote: 
To https://git.heroku.com/shielded-beyond-8167.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to 'https://git.heroku.com/shielded-beyond-8167.git' 

回答

0

它看起來像你試圖部署一個Python應用程序到Heroku。對於Heroku上的Python應用程序,您需要在您項目的根目錄中的requirements.txt文件中列出您的依賴項。

舉例來說,如果你正在運行的是需要requests庫項目,那麼你會定義一個requirements.txt文件,其中包含以下

requests==2.7.0 

注意:您可以自動生成一個文件requirements.txt在你的筆記本電腦(通常情況下)運行:

$ pip freeze > requirements.txt 

這將自動爲您創建一個requirements.txt文件與所有依賴包括=)

如果您在創建requirements.txt文件後仍然遇到問題,這意味着您可能嘗試使用未在Heroku核心映像上安裝的C頭庫 - 在這種情況下,您將需要創建一個定製的buildpack:https://devcenter.heroku.com/articles/buildpacks