- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是一个团队的成员,该团队即将发布基于 python(特别是 Django)的网站和配套的后端工具套件的测试版。在过去的几周里,团队本身的规模从 2 人增加到 4 人,我们预计至少在接下来的几个月内会继续增长。一个开始困扰我们的问题是让每个人都在配置他们的开发环境和安装所有正确的鸡蛋等方面加快速度。
我正在寻找方法来简化此过程并使其不易出错。 zc.buildout 和 virtualenv 看起来都是解决这个问题的好工具,但它们似乎都主要集中在特定于 python 的问题上。我们有几个其他语言(特别是 Java 和 Ruby)的小子项目,以及许多必须本地编译的 python 扩展(lxml、MySQL 驱动程序等)。事实上,我们这边最大的麻烦之一是让这些扩展中的一些针对共享库的适当版本进行编译,以避免段错误、malloc 错误和各种类似问题。 4 个人中我们有 4 个不同的开发环境——1 个 leopard on ppc,1 个 leopard on intel,1 个 ubuntu 和 1 个 windows,这无济于事。
最终理想的是在 dos/unix 提示符下大致像这样工作:
$ git clone [仓库地址]...$ python setup-env.py...
然后执行 zc.buildout/virtualenv 执行的操作(复制/符号链接(symbolic link) python 解释器,提供一个干净的空间来安装 eggs)然后安装所有需要的 eggs,包括安装任何本地共享库依赖项,安装 ruby 项目,java项目等
显然,这对于启动开发环境以及在暂存/生产服务器上进行部署都很有用。
理想情况下,我希望实现此目的的工具可以通过 python 编写/扩展,因为这是(而且永远是)我们团队的通用语言,但我对其他语言的解决方案持开放态度。
那么,我的问题是:有没有人对更好的替代方案有任何建议,或者他们可以分享使用其中一种解决方案来处理更大/更广泛的安装基础的经验?
最佳答案
Setuptools 的功能可能比您意识到的要多——例如,如果您需要自定义版本的 lxml 才能在 MacOS X 上正常工作,您可以在您的setup.py 并根据需要让 setuptools 下载并安装在开发人员的环境中;它还可以被告知从修订控制下载并安装特定版本的依赖项。
也就是说,我倾向于使用脚本生成的虚拟环境。构建一个 kickstart 文件非常简单,该文件安装您依赖的任何软件包,然后针对它启动虚拟机(或生产硬件!),使用 puppet 或类似软件进行其他管理(添加用户、设置服务 [您的数据库来自哪里) ?], ETC)。当您的生产环境包括多台机器时,这会特别方便——只需在它们方便的小沙盒子网中编写多个 VM 的生成脚本(我为此使用 libvirt+kvm;虽然 kvm 在您让开发人员工作的所有平台上都不可用上,qemu 肯定是,或者你可以像我一样做,并拥有由多个开发人员共享的少量强大的 VM 主机)。
这让您摆脱了支持 N 个平台的烦恼——您只需要支持一个虚拟平台——并且意味着您的部署过程(由 kickstart 文件和用于设置的 puppet 代码定义)是源代码-就像其他一切一样,控制并贯穿您的质量保证和审查流程。
关于python - 除了 zc.buildout 和/或 virtualenv 之外,还有其他好的替代方法来安装非 python 依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/160834/
Glpk 需要使用configure make install 命令构建。所以我使用 zc.recipe.cmmi 配方来构建 glpk 包。它在 bin 目录中生成 glpsol 命令。我需要能够在
我正在尝试在新的 Django 项目中使用 zc.buildout。我真的很喜欢这个工具背后的想法,当然也很感激为这个工具付出的努力。尽管缺少文档,但我感到很惊讶。我列出了我认为是关于扩建或与扩建密切
我对 python egg 版本有疑问。在我的开发机器上,我有 python-ldap 版本 2.3.13,而大学在他们的机器上有版本 2.3.10。两个 python-ldap 库都安装在操作系统级
我想在/Zc:wchar_t 设置为 Yes 的情况下编译 Qt。这是我打算如何编译它: configure -debug-and-release -opensource -platform win3
我刚刚设置了我的项目,但在让 Django 工作时遇到问题。这是我的 buildout.cfg: [buildout] parts = python django develop = . eggs =
最近,由于存在(或不存在)此标志,我遇到了一些链接问题。 /Zc:wchar_t- 我读过 docs ,但他们没有提到尾随减号。但每一次关于它的讨论似乎都包括它。什么意思? 最佳答案 /Zc:wcha
我们的一个网站有一个损坏的关系目录,我不知道如何修复它。 这是我在日志中看到的: 2015-11-20T09:27:43 ERROR Zope.SiteErrorLog 1448018863.240.
我正在尝试让 zc.buildout 从源代码安装 Gunicorn。使用以下配置: [gunicorn] recipe = collective.recipe.distutils url = htt
我是 zc.buildout 的新手,希望开始使用它。我正在研究将 Eggs 配置为零件和模块的概念,并在 cfg 文件中将其开发为develop-eggs。我无法弄清楚应该如何为正在开发的模块配置外
我使用 zc.buildout 来构建我的 python 应用程序环境。我想运行 IPython 笔记本并使用我的自定义包来进一步测试和开发。 [buildout] extends = buildou
我创建了一个自动安装 nginx 的 zc.buildout 配置,带有配置和启动脚本。 一切正常,除了,为了成功运行 nginx,我必须以 sudo 运行它。我在 ubunut 下运行它,只是想知道
我正在尝试在运行 Debian 和 Python 2.7.1 的网络服务器上使用 ZODB 3.10.2。似乎每次我尝试从 2 个不同的进程访问同一个数据库时,我都会遇到一个神秘的异常。我尝试从交互式
我的项目使用 buildout 主要做两件事:自动获取依赖项和创建脚本;并使用 usercrontab 构建配方设置 cron 作业(在部署机器上)。 但是 Python 3 尚不能使用 buildo
我想使用 buildout 进行依赖管理,我听说 distribute 是管理项目安装的新好方法。 但是,简单的入门教程似乎很少见。我见过的最直接的是 Jacob Kaplan-Moss 的 Deve
我使用 zc.buildout 来开发我的项目并下载依赖项(use-site-packages off)。 我想在运行之前将我的项目作为一个包安装到目标系统上。为此,我制作了 setup.py。 我是
我看了this video并尝试使用源代码发布工具。 首先,这是文档中不确定的部分: To create a source release, simply run the buildout-sourc
我一直在我的机器上使用 IPython 而不是默认的 Python 解释器,因为它有更多的特性,而且通常感觉更强大。我想在我的 zc.buildout 项目中将它用作 bin 目录中的解释器,就像此部
我正在尝试使用以下指南为 Django 1.4 项目创建开发环境: http://www.stereoplex.com/blog/a-django-development-environment-wi
我正在尝试使用 zc.buildout 从私有(private) reportlab pypi 服务器安装 python 包。 当我使用他们自己网站上提供的说明进行安装时,安装没有问题。 http:/
我正在尝试安装基于 Plone 的 Plumi 4.5.1。 目标系统是 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64
我是一名优秀的程序员,十分优秀!