我有一个网络应用程序的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库,因此它可以单独进行版本控制。
答案 0 :(得分:0)
我真的不明白你的第一个问题。您总是需要在每个使用它的文件中导入一个模块,这就是Python的工作原理。但是你只需要安装一次依赖项,因为你使用的是virtualenv,你可以安装gramme
的工作版本而不会有任何冲突。虽然我不明白为什么你的代码与你的“virtualenv容器”分开:你的项目应该里面 virtualenv,这就是重点。
对于第二个问题,您可以通过将pip指向您的github分叉并使用-e
在您的virtualenv中以“可编辑”模式安装依赖项:
pip install -e git+git://github.com/shivek/gramme.git