问题标签 [buildout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2382 浏览

python - Python 代码组织问题:Eggs + Packages + Buildout + Unit Tests + SVN

我有几个共享通用模块的 python 项目。直到现在,我一直在……咳咳……保留公共代码的多个副本并手动同步。但我显然更愿意做其他事情。

现在在我看来,好像 zc.Buildout 可能是我需要的。我想我应该做的是将系统的每个可重用组件放入一个单独的鸡蛋中,然后使用 buildout 将它们组装成项目。

我还认为对于任何特定模块,我应该将单元测试放入单独的包或鸡蛋中,这样我就不会在每个项目中安装组件的单元测试副本。我只想在开发我的库的地方进行单元测试,而不是在刚刚使用它的地方进行单元测试。

所以也许我想要这样的东西

等等

其中 app1 和 app2 都是具有自己的代码和测试的独立应用程序,但也包含并使用 lib1 和 lib2。而 lib1/test、lib1/code、lib2/test、lib2code、app1、app2 是独立的鸡蛋。这听起来对吗?

然而,我现在很困惑。我假设当我开发 app1 时,我希望 buildout 将 lib1、lib2 和 app1 的副本拉到单独的工作目录中,而不是将这些库的副本直接放在 app1 下。但这如何与我的 SVN 源代码控制一起使用?如果工作目录是使用 buildout 动态构建的,它不能是一个实时 SVN 目录,我可以从中将更改检查回存储库吗?

我是否误解了 buildout 的使用方式?我会更好地采用完全不同的方法吗?你如何在项目之间混合源代码控制和模块重用?

更新:感谢目前已回答此问题的两个人。我正在对此进行更多实验。

0 投票
5 回答
3218 浏览

python - 使用 virtualenv 安装某些包

所以,我想今年开始使用 virtualenv。我喜欢 no-site-packages 选项,这很好。但是我想知道如何将某些软件包安装到每个 virtualenv 中。例如,假设我想将 django 安装到每个 virtualenv 中……这可能吗,如果可以,怎么做?buildout 能解决这个问题吗?


好吧,与其说是 django,不如说是 django 应用程序...我不介意在每个 virtualenv 中安装一个 django 版本...我只是想知道是否有一些“无站点包”的中间选项

0 投票
7 回答
7387 浏览

python - 当 pypi 关闭时,如何使用 easy_install 和 buildout?

我正在使用buildout自动下载和设置我的 Plone 安装的许多依赖项。buildout 或多或少使用 easy_install 来下载和安装一堆 Python 鸡蛋。这通常有效,但如果无法下载任何依赖项,或者我希望构建找到不适合 pypi 的内部包,则它不起作用。如何设置我自己的本地版本的 pypi 来自动镜像我需要的包?对于使用 pypi 作为元数据但不使用代码的软件包,它是否仍会依赖第三方服务器?

0 投票
1 回答
2747 浏览

python - How to tell Buildout to install a egg from a URL (w/o pypi)

I have some egg accessible as a URL, say http://myhosting.com/somepkg.egg . Now I don't have this somepkg listed on pypi. How do I tell buildout to fetch and install it for me. I have tried a few recipes but no luck so far.

TIA

0 投票
1 回答
1349 浏览

python - 安装 Zope 2 的最简单的 buildout.cfg 是什么?

我知道安装 Zope 的推荐方法是使用 Buildout,但我似乎找不到简单的 buildout.cfg 来安装最小的 Zope 2 环境。有很多安装 Plone 和其他东西。

我试过了:

但我得到:

0 投票
4 回答
1835 浏览

python - 如何使用 buildout 安装 django-haystack

我正在尝试将开发中的当前 Django 项目转换为使用 zc.buildout 到目前为止,我已经弄清楚了除了 Haystack 之外的所有位。

Haystack 源代码在 GitHub 上可用,但我不想强迫用户安装 git。一个合适的选择似乎是从这里获取一个 tarball

那个 tarball 包含一个 setuptools setup.py,看起来它应该很容易得到 buildout 来安装它。哈!

0 投票
3 回答
663 浏览

python - 零件层次结构的构建配方

是否有允许以下内容的 Python构建配方:

换句话说,我想要一个带有“部件”属性的配方,就像“构建”部分一样,所以我可以手动管理部件组的层次结构。

是的,我知道我可以这样做:

但是依赖于通过引用它们的属性来构建部件的副作用似乎有点模糊。我宁愿通过使用只允许列出零件本身的名称的配方来更明确。

当然,在扩展和覆盖时,这样说看起来更简洁:

比:

或者我的问题是我只是错过了一些关于构建如何工作的基本知识,或者只是忽略了文档中的一些东西,这使得它变得更清晰。

不,我不希望有一个平面层次结构,其中所有部分都列在“构建”部分的“部分”属性中。

0 投票
3 回答
932 浏览

python - 防止在构建时发生变量替换

是否有一种简单的方法可以在构建配置中转义用于变量替换的魔术字符,以便单独保留字符串。换句话说,我在哪里说:

我实际上并不希望它扩展 ${variable} 而是将其保留为文字值。

在实践中,我遇到的具体问题不在构建配置文件本身,而是在配方“collective.recipe.template”处理的模板文件中。这使用了与配置文件中使用的构建相同的变量替换引擎。问题是我想用作模板的文件已经将“${variable}”语法用于其自身目的以及最终使用该文件的应用程序配置系统。

我发现解决这个问题的唯一方法是使用类似的东西:

在模板输入文件中,然后有:

代替:

它已经有了。

这样做是在使用模板的部分中查找“美元”属性并将其替换为“$”。

而不是必须这样做,有点希望可以这样做:

或者甚至:

并消除了必须有一个虚拟属性来欺骗它做我想做的事情的需要。

查看 buildout 的源代码,它匹配变量替换的方式似乎没有提供转义机制。

如果确实没有办法,那么也许有人知道用于构建的替代模板配方可以进行变量扩展,但为它指示变量的任何方式提供了一种转义机制,这样就可以避免可能存在冲突的问题模板系统扩展机制和被模板化文件中的文字数据。

0 投票
6 回答
6336 浏览

javascript - 在 python 中部署时合并 javascript 文件

我正在尝试减少我们网站中包含的脚本数量,并且我们使用 buildout 来处理部署。有没有人成功地实现了一种将脚本与构建组合和压缩的方法?

0 投票
2 回答
1609 浏览

python - 更好的资源来学习构建

我试图通过本教程掌握更多内容,但与教程不同,它似乎是演示幻灯片的剪切和粘贴。我不太清楚构建的目的是什么,以及它如何使用 scons 和 setuptools 定位自己。您能否提供有关这些问题的详细信息?

谢谢!