使用修改的依赖项管理Python项目

时间:2013-12-19 14:41:32

标签: python project-management dependency-management directory-structure

我有一个网络应用程序的virturalenv。它具有以下目录结构:

.
|-- main.py
|-- modules //(The name modules is domain specific, don't confuse with python modules)
|   |-- __init__.py
|   `-- plotter.py
|-- network
|   |-- __init__.py
|   |-- socket
|   |   |-- server.py
|   |   `-- tcp_server.py
|   `-- SocketServer
|       |-- tcp.py
|       `-- udp.py
|-- README.md
`-- r-ve (this is the virtualenv container)

network文件夹处理连接管理,modules文件夹依赖网络来使用网络数据。

此项目通过git-scm进行版本控制。现在我还有一个名为gramme的依赖项。我通过pip安装了gramme,它存在于r-ve中(在virtualenv中)。所有模块都依赖于gramme(每个模块文件使用import gramme

为了满足项目的需要,我正在编码模块(我在github上分叉)。我希望团队可以使用这个被黑的克服,而不是pip上可用的那个。另外,我想在git上单独控制格式(作为一个独立的仓库)

问题1)是否有更好的方法可以在modules文件夹中的所有文件中导入gramme,而不是单独将其导入每个文件中。

更新:我对问题1感到困惑。现在明确了:))

问题2)我在哪里放置修改过的gramme库,因此它可以单独进行版本控制。

1 个答案:

答案 0 :(得分:0)

我真的不明白你的第一个问题。您总是需要在每个使用它的文件中导入一个模块,这就是Python的工作原理。但是你只需要安装一次依赖项,因为你使用的是virtualenv,你可以安装gramme的工作版本而不会有任何冲突。虽然我不明白为什么你的代码与你的“virtualenv容器”分开:你的项目应该里面 virtualenv,这就是重点。

对于第二个问题,您可以通过将pip指向您的github分叉并使用-e在您的virtualenv中以“可编辑”模式安装依赖项:

pip install -e git+git://github.com/shivek/gramme.git