【发布时间】:2012-08-25 17:49:26
【问题描述】:
如果您在同一个virtualenv 中的多个包上运行python setup.py develop,您可以同时开发它们,而无需在更改后重新安装。
我最近将项目中的功能提取到一个单独的包中,我现在正在以这种方式进行开发。
有没有办法在我的setup.py 文件中表达这种依赖关系,以便新开发人员可以在主项目目录中简单地运行python setup.py develop 一次?
【问题讨论】:
-
我不知道你打算怎么做。
python setup.py develop取决于找到setup.py所在的目录。用户 Alice 不会在一个目录中拥有包 A,而用户 Bob 在另一个目录中拥有包 A?还是所有目录都是相对设置的? -
@MarkHildreth - 它们都是源代码管理中同一文件夹层次结构的一部分,因此您可以可靠地指望
project_B/setup.py在project_A/../project_B/setup.py中。不过,您提出了一个很好的观点,那就是 setup.py 可能不适合这里的工作。 -
如果您有一个要设置的软件包列表,您只需要一个类似于 makefile 的简短脚本,该脚本 cd 到每个项目并在那里运行
python setup.py develop [user options]。将一个能做到这一点的大师setup.py组合在一起应该不难。 -
开发模式是你私下使用的,强迫别人使用它,因为依赖对我来说听起来不干净。要么你的包足够独立,可以单独工作(开发者的选择),要么它们可以合并到一个包中。
-
您所描述的可以通过使用zc.buildout) 尤其是mr.developer 扩展来实现。但是,使用 buildout 与使用 virtualenv 管理您的开发环境有很大不同——我不知道这是否适合您。如果您不受限制使用 virtualenv 并考虑切换到 buildout,我可以写一个答案让您入门。
标签: python dependencies development-environment virtualenv setuptools