2

如果在同一个virtualenv的几个软件包上运行python setup.py develop,则可以在进行更改后无需重新安装即可开发它们。如何自动安装本地“开发模式”软件包?

我最近从我的项目中提取功能到一个单独的包,我现在正在以这种方式开发。

有没有办法在我的setup.py文件中表达这种依赖关系,所以新开发人员只需在主项目的目录中运行一次python setup.py develop

+0

我不知道你打算如何做这件事。 'python setup.py develop'取决于找到'setup.py'所在的目录。用户Alice是不是将A包装在一个目录中,而用户Bob将A包装在另一个目录中?或者所有的目录都是相对于彼此设置的? –

+0

@MarkHildreth - 它们都是源代码管理中相同文件夹层次结构的一部分,因此您可以可靠地指望'project_A /../project_B/setup.py'中的'project_B/setup.py'。不过,您提出了一个很好的观点,那就是setup.py可能并不是这里工作的正确工具。 –

+0

如果你有一个你想要建立的软件包列表,你需要的只是一个简短的类似makefile的脚本,该脚本用于cd到每个项目并在那里运行'python setup.py develop [user options]'。要做到这一点,不应该很难将主控制器“setup.py”放在一起。 – alexis

回答

2

我相信并担心你的问题的答案只是“不”。

setup.py不符合您的需求。尽管如此,寻找技巧可能会对新开发人员带来更多问题。如卢卡斯·格拉夫在评论中描述

  • Loouk zc.buildout:

    可悲的是我不能提供完美的替代品。

  • 如果您知道开发者的平台,请分配压缩的快速启动工作目录以及配置的所有内容, 。
  • 提供一个执行整个设置的shell脚本。
  • 教你的开发者setuptool(setup.py)和virtualenv, 的正确使用和理念,让他们明确地为他们需要的每个包调用“setup.py develop”。

记住显式优于隐式是python禅的一部分。 我会去最后一个,但YMMV。

+0

尤尔根,你在赏金期间发布了你的答案吗?如果是这样的话,我不介意重新做这件事,去找你的50名代表。你应得的。 ;-) –

+0

我在截止日期前大约3小时发布了信息,等待有更好的信息出现。 –

相关问题