我想使用git来允许我同时编写的模块中的几个特性。我现在使用的是SVN,只有一个工作区,所以我只在PYTHONPATH上有这个工作区。我意识到这并不理想,所以我想知道是否有人可以建议一个更“恰当”的方法来做这件事。在
让我用一个假设的情况来阐述:
我说我有一个“鸡蛋”模块,有子模块“foo”和“bar”。“bar”中的组件使用foo中的代码,因此eggs/bar/a.py可能“import”鸡蛋.foo'. 在
假设“鸡蛋”在git存储库中。我想尝试对“foo”进行一些更改,所以我复制了它。问题是“进口”鸡蛋.foo'在eggs/bar中找到PYTHONPATH中的原始存储库,因此它最终使用旧的'foo'而不是我修改过的。在
如何设置自己,使模块的每个副本都使用自己关联的“foo”?谢谢。在
编辑-感谢您提供指向相对导入的指针。我已经读过了,我知道如何运用它。我在使用它时会遇到的一个问题是,我已经建立了一个相当大的代码库,而且我对它不太在行,所以大多数模块在if __name__ == '__main__':下都有一个快速的“自测试”,从我读到的内容来看,这并不适用于相对导入:
另一个我能在谷歌上搜索的解决方案是故意操纵搜索路径,这似乎是更糟糕的黑客攻击。还有其他的可能性吗?在
编辑-谢谢你的建议。我最初误解了git分支,因此指出分支正是我想要的。尽管如此,我以前还没听说过相对进口的产品,所以也谢谢你。我学到了一些新东西,可能会用到它。在