2010-08-20 2 views
10

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

Моя структура файла с virtualenv выглядит следующим образом:

myapp/ 
    app.py 

, который выполняется с помощью /path/to/venvs/myapp/bin/python /path/to/myapp/script.py.

С buildout, моя структура файла:

myapp/ 
    app.py 
    bootstrap.py 
    buildout.cfg 

Запуск python bootstrap.py и bin/buildout дает мне эти дополнительные файлы:

myapp/ 
    bin/ 
    buildout 
    eggs/ 
    setuptools-0.6c12dev_r80622-py2.6.egg 
    tornado-1.0.1-py2.6.egg 
    parts/ 

На данный момент я не уверен, как "запустить" мое приложение ,

Рекомендации?

ответ

3

Следующий рецепт будет устанавливать торнадо в виде яйца и создать скрипт python и myapp в каталоге bin с правильным путем поиска, чтобы найти яйцо торнадо.

[buildout] 
parts = python 
eggs = tornado 
extra-paths = ${buildout:directory} 

[python] 
recipe = zc.recipe.egg 
interpreter = python 
eggs = ${buildout:eggs} 
entry-points = myapp=app:main 
extra-paths = ${buildout:extra-paths} 
3

Buildout и virtualenv на самом деле связаны касательно. Buildout действительно касается развертывания программного обеспечения с ограниченным и контролируемым режимом, где virtualenv - это инкапсуляция среды, в которой работает программное обеспечение python. Buildout обеспечивает то, что virtualenv делает в себе, а затем обертывает немного больше вокруг него.

Подумайте о том, как построить рецепт, как принять код и уложить его на удаленную систему, готовую к запуску. Некоторые из этих процессов начинаются с создания чистой песочницы (что также может предоставить virtualenv), а затем добавляя в библиотеки, фрагменты и детали по мере необходимости.

Я не эксперт по строительству, но я бы ожидал, что ваш основной код python будет отображаться под «bin» в вашей структуре каталогов и что вы каким-то образом вызываете его оттуда.

0

В нашем проекте мы также не используем Zope. Мы потратили время, чтобы написать вступительное слово для студентов о том, как организовать (и распространять через PyPI) их код, используя zc.buildout и стандартные инструменты упаковки python. Это может быть полезно для тех, кто читает эту тему: http://www.idiap.ch/software/bob/docs/releases/v1.2.2/sphinx/html/OrganizeYourCode.html

+0

Эта ссылка мертвая, пожалуйста, обновите ее. – shuttle87

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