尝试部署到Heroku时,我得到了一英里长的错误列表。我跟着他们的指导开始,但显然它缺乏和不准确。
我的设置是一个模块,我的要求是一个文件夹,包含每个环境的不同.txt文件:
settings/
base.py
dev.py
heroku.py
requirements/
base.txt
dev.txt
heroku.txt
我尝试在base.txt和heroku.txt(扩展base.txt)中使用pylibmc==1.2.2 django-pylibmc-sasl==0.2.4
部署到Heroku,但仍然是相同的。
Bug trace(小样本):
_pylibmcmodule.c:2097: warning: passing argument 1 of ‘PyInt_FromLong’ makes integer from pointer without a cast
/app/.heroku/python/include/python2.7/intobject.h:38: note: expected ‘long int’ but argument is of type ‘struct PylibMC_Behavior *’
_pylibmcmodule.c:2097: warning: passing argument 1 of ‘PyObject_SetAttrString’ from incompatible pointer type
/app/.heroku/python/include/python2.7/object.h:472: note: expected ‘struct PyObject *’ but argument is of type ‘struct PylibMC_Behavior *’
_pylibmcmodule.c:2098: error: ‘PylibMC_McErr’ has no member named ‘name’
_pylibmcmodule.c:2098: error: ‘PylibMC_McErr’ has no member named ‘exc’
_pylibmcmodule.c:2098: warning: passing argument 2 of ‘PyModule_AddObject’ from incompatible pointer type
/app/.heroku/python/include/python2.7/modsupport.h:40: note: expected ‘const char *’ but argument is of type ‘struct PylibMC_Behavior *’
_pylibmcmodule.c:2100: error: ‘PylibMC_McErr’ has no member named ‘name’
_pylibmcmodule.c:2100: error: ‘PylibMC_McErr’ has no member named ‘exc’
_pylibmcmodule.c: In function ‘init_pylibmc’:
_pylibmcmodule.c:2176: error: ‘LIBMEMCACHED_VERSION_STRING’ undeclared (first use in this function)
_pylibmcmodule.c:2176: warning: passing argument 3 of ‘PyModule_AddStringConstant’ from incompatible pointer type
/app/.heroku/python/include/python2.7/modsupport.h:42: note: expected ‘const char *’ but argument is of type ‘struct PylibMC_Behavior *’
error: command 'gcc' failed with exit status 1
----------------------------------------
Command /app/.heroku/python/bin/python -c "import setuptools;__file__='/app/build/pylibmc/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-i0GDaz-record/install-record.txt failed with error code 1 in /app/build/pylibmc
Storing complete log in /app/.pip/pip.log
! Heroku push rejected, failed to compile Python app
我找到了this相关帖子,这就是尝试将libs添加到base.txt的想法,但仍然没有帮助。
答案 0 :(得分:2)
如果您在requirements.txt中出现Pylibmc,则会自动支持它。
拥有所有这些需求文件只是额外的开销。查看Twelve-Factor's Dev/Prod Parity文章。