2015-04-18 3 views
0

edit2: добавил Целые StderrBuildout добавляя яйца к существующему рецепту

Edit1: удалил мой предполагаемый ответ. Обновлено описание проблемы и добавил полный текст buildout.cfg

Edit0: фиксированной связи

Я пытаюсь портировать проект Pyramid я должен Google App Engine. Я пытаюсь использовать Tobias Rodaebel (спасибо!) buildout recipe, который помогает в этом. Я использовал лезвие pyramid_appengine, по существу следуя описанной процедуре here.

Все прошло довольно гладко, пока я не попытался добавить дополнительные яйца к строительству. Я пытаюсь добавить pymongo пакет в файл ./buildout.cfg,

[buildout] 
include-site-packages=false 
find-links=http://dist.plone.org/thirdparty/ 
extends = versions.cfg 
versions = versions 
update-versions-file = versions.cfg 
show-picked-versions = true 
develop=src/bkk 
parts=bkk 
    tests 
    service-bkk 
ae-sdk-version=1.9.18 
ae-runtime=2.7 
ae-sdk-location = ${buildout:parts-directory}/google_appengine 
ae-extra-paths = 
      ${buildout:bin-directory} 
     ${buildout:directory}/parts/bkk 
     ${buildout:directory}/parts/google_appengine 
      ${buildout:directory}/parts/google_appengine/lib/antlr3 
      ${buildout:directory}/parts/google_appengine/lib/django 
      ${buildout:directory}/parts/google_appengine/lib/fancy_urllib 
      ${buildout:directory}/parts/google_appengine/lib/yaml/lib 
unzip=true 
supervisor-port = 9999 
supervisor-conf-dir = ${buildout:directory}/conf 
supervisor-log-dir = ${buildout:directory}/var/log 
service-conf-templates = ${buildout:directory}/conf.tmpl 
project-name=bkk 

[bkk] 
recipe=rod.recipe.appengine 
packages= 
    pyramid 
    pymongo 
    pyramid_jinja2 
    repoze.lru 
    zope.interface 
    zope.deprecation 
    venusian 
    translationstring 
    jinja2 
    webob 
src=src/bkk 
server-script=devappserver 
zip-packages=false 
use_setuptools_pkg_resources=true 
url=https://storage.googleapis.com/appengine-sdks/featured/google_appengine_${buildout:ae-sdk-version}.zip 

[bootstrap] 
recipe=zc.recipe.egg 
eggs=pastescript 
extra-paths=${buildout:ae-extra-paths} 

[tests] 
recipe = zc.recipe.egg 
eggs = 
    WebTest 
    WebOb 
    pytest 
    pytest-cov 
interpreter = python 
extra-paths=${buildout:ae-extra-paths} 


[supervisor] 
recipe = zc.recipe.egg 

[mk-supervisor-log-dir] 
recipe = collective.recipe.cmd:py 
on_install = true 
cmds = 
    >>> if not os.path.isdir('${buildout:supervisor-log-dir}'):os.makedirs('${buildout:supervisor-log-dir}') 

[service-supervisor] 
recipe = collective.recipe.template 
input = ${buildout:service-conf-templates}/supervisord.conf_tmpl 
output = ${buildout:directory}/etc/supervisord.conf 
depends = ${mk-supervisor-log-dir:recipe} ${supervisor:recipe} 

[service-bkk] 
recipe = collective.recipe.template 
input = ${buildout:service-conf-templates}/service-${buildout:project-name}.conf_tmpl 
output = ${buildout:supervisor-conf-dir}/service-${buildout:project-name}.conf 
port=8000 
admin_port=8010 
api_port=8020 
depends = ${service-supervisor:recipe} 

, а также распаковать соответствующее яйцо в каталог ./eggs. Я в конечном итоге получить следующее сообщение об ошибке:

Develop: '/Users/npk1/Dev/bkk/bkk_gae/bkk/src/bkk' 
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'paster_plugins' 
    warnings.warn(msg) 
warning: no files found matching '*.ini' 
warning: no files found matching '*.rst' 
warning: no files found matching '*.jpg' under directory 'bkk' 
warning: no files found matching '*.pt' under directory 'bkk' 
warning: no files found matching '*.txt' under directory 'bkk' 
warning: no files found matching '*.mak' under directory 'bkk' 
warning: no files found matching '*.mako' under directory 'bkk' 
warning: no files found matching '*.js' under directory 'bkk' 
warning: no files found matching '*.html' under directory 'bkk' 
warning: no files found matching '*.xml' under directory 'bkk' 
Uninstalling bkk. 
Unused options for buildout: 'ae-runtime' 'include-site-packages' 'unzip'. 
Installing bkk. 
rod.recipe.appengine: Google App Engine distribution already downloaded. 
While: 
    Installing bkk. 

An internal error occurred due to a bug in either zc.buildout or in a 
recipe being used: 
Traceback (most recent call last): 
    File "/Users/npk1/Dev/bkk/bkk_gae/bkk/eggs/zc.buildout-2.3.1-py2.7.egg/zc/buildout/buildout.py", line 1946, in main 
    getattr(buildout, command)(args) 
    File "/Users/npk1/Dev/bkk/bkk_gae/bkk/eggs/zc.buildout-2.3.1-py2.7.egg/zc/buildout/buildout.py", line 626, in install 
    installed_files = self[part]._call(recipe.install) 
    File "/Users/npk1/Dev/bkk/bkk_gae/bkk/eggs/zc.buildout-2.3.1-py2.7.egg/zc/buildout/buildout.py", line 1370, in _call 
    return f() 
    File "/Users/npk1/Dev/bkk/bkk_gae/bkk/eggs/rod.recipe.appengine-2.0.6-py2.7.egg/rod/recipe/appengine/__init__.py", line 380, in install 
    self.copy_packages(ws, temp_dir) 
    File "/Users/npk1/Dev/bkk/bkk_gae/bkk/eggs/rod.recipe.appengine-2.0.6-py2.7.egg/rod/recipe/appengine/__init__.py", line 290, in copy_packages 
    raise KeyError, '%s: package not found.' % p 
KeyError: 'pyramid_jinja2: package not found.' 

Прогулки по коду кажется, что zc.recipe собирает свой собственный список зависимостей и проверки их против моих проектов и pymongo не появляется, хотя, возможно, я не права.

Кто-нибудь знает процесс при добавлении новых пакетов в существующий рецепт? Это неправильный способ думать об этом? Я буду продолжать пытаться переварить документацию buildout, поскольку я новичок в этой утилите.

Благодаря

+0

Обратите внимание, что обе ссылки в вопросе приводят к странице для какой-то старой версии 'zc.recipe.egg', которая не является достаточно актуальной на вопрос. Я также подозреваю, что 'packages =' означает 'eggs =' и 'zc.recipe' на самом деле' zc.recipe.egg'. Все это довольно сложно расшифровать, что происходит :) Можете ли вы показать нам свой полный файл buildout.cfg и рассказать нам, что вы пытаетесь сделать? – Sergey

+0

@ Серджи мои извинения! Не знаю, как это произошло. Исправлены ссылки. Фактически, «пакеты» действительно являются ярлыком. – npk

ответ

0

Пирамида имеет cookbook of recipes.

Эти два рецепта описывают, как развернуть Pyramid на GAE. Оба обеспечивают руководство, используя другой метод, чем путь, по которому вы начали.

Pyramid on Google’s App Engine (using buildout)

Pyramid on Google’s App Engine (using appengine-monkey)

+0

Я действительно хотел включить ссылку на создание, но почему-то не удалось. Исправлено это в редактировании. – npk

Смежные вопросы