簡體   English   中英

如何解決Python Git Submodule的依賴

[英]How to resolve dependencies of Python Git Submodule

我在單獨的 git 存儲庫中有 Python 項目 A、B 和 C。 他們在每一個中都使用了一些類似的代碼,所以我想將代碼重構到一個單獨的共享存儲庫中。這個存儲庫中的 Python 代碼實際上只是一些幫助類。 我可以將這個新 repo 中的文件作為 git-submodule 包含在項目 A、B 和 C 中。

我現在遇到的問題是,如果 git 子模塊中的代碼具有外部 pip 依賴項,那么頂級項目除了自己的依賴項之外如何解決這些依賴項?

也許 git-submodules 在這里不是正確的方法,但我真的想避免為 3-4 個輕量級模塊/類設置私有 pypi 服務器。

我現在遇到的問題是,如果 git 子模塊中的代碼具有外部 pip 依賴項,那么頂級項目除了自己的依賴項之外如何解決這些依賴項?

在您的子模塊存儲庫中,像往常一樣在requirements.txt包含您的依賴項。

然后在您的文檔中,確保在安裝 A、B 或 C 之前包含有關安裝子模塊包的說明。

例如,假設包 A 是 foo,子模塊是 bar。

tree
.
└── foo
    ├── bar
    │   ├── bar
    │   │   └── __init__.py
    │   ├── requirements.txt # external pip dependencies
    │   └── setup.py
    ├── foo
    │   └── __init__.py
    ├── requirements.txt
    └── setup.py # include 

4 directories, 6 files

然后在您的文檔中,您可以包含這樣的內容,


為 Foo 安裝

# Initialize submodule(s)
git submodule update --init --recursive

# First install bar
cd bar

# Resolve any dependencies for bar
pip install -r requirements.txt

# Install bar
python setup.py install

# Now install foo
cd ..

# Resolve any other dependencies for foo
pip install -r requirements.txt

# Install foo
python setup.py install

注意:這應該對所有三個存儲庫執行,例如,A、B 和 C。


資源:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM