4

尝试部署到 Heroku 时,我收到了一英里长的错误列表。我按照他们的指导开始,但显然它缺乏且不准确。

我的设置是一个模块,我的要求是一个包含每个环境的不同 .txt 文件的文件夹:

settings/
  base.py
  dev.py
  heroku.py

requirements/
  base.txt
  dev.txt
  heroku.txt

我尝试pylibmc==1.2.2 django-pylibmc-sasl==0.2.4在 base.txt 和 heroku.txt(扩展 base.txt)中部署到 Heroku,但还是一样。

错误跟踪(小样本):

_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

我找到了这个相关的帖子,这就是尝试将库添加到 base.txt 的想法,但仍然没有帮助。

4

1 回答 1

2

如果您在 requirements.txt 中存在 Pylibmc,它会自动得到支持。

拥有所有这些需求文件只是额外的开销。查看Twelve-Factor 的 Dev/Prod Parity文章。

于 2013-02-07T11:39:46.353 回答