[英]Setting path for GIT submodule within a python project?
我有兩個項目 A 和 B。B 是 git 子模塊,在 A 的 run.py 腳本中被調用。當我運行它時,無法告訴我它找不到 B 的某些內部模塊(錯誤 1)。 為了解決這個問題,我在 A 的 run.py 之上添加了以下內容:
import sys
sys.path.append("pathToProjectB")
它有效。 但是,有人知道另一種方法嗎? 也許一些更好的項目結構(B 必須是 A 的 GIT 子模塊,不能更改)或虛擬環境文件夾中的一些配置? 這是使 GIT 子模塊在 python 項目中工作的唯一方法嗎?
更新1:此外,如果我在B中有一些文件與A中的文件同名,那么python可以獲取A的文件,而我希望它獲取B的文件(錯誤2)。
更新2:確實有一種糾正錯誤1的方法,而不必輸入:
import sys
sys.path.append("pathToProjectB")
在項目 A 的 run.py 頂部。您可以通過在 A 中將項目 B 安裝為 package 而不僅僅是將其作為 git 子模塊安裝在 A 的項目結構中:Z62AD1C2A46C5298F03E2C95D3BBA8首先是項目 B 中的 setup.py 文件(如果 setup.py 使用它,還有自述文件)。 更多信息在這里https://shunsvineyard.info/2019/12/23/using-git-submodule-and-develop-mode-to-manage-python-projects/
我仍然遇到 ERROR2 的問題...所以 A 和 B 有一個名為 data 的文件,其中包含一些 class 數據。 B調用自己的數據class。 但是,當我從 A 調用 B 時,B 從 A 調用數據 class 而不是它自己的......我該如何解決這個問題?
這是漫長的一天...
為了修復 ERROR2,我更改了項目 B 的結構,如下所示的簡化目錄樹所示。
B
__init__.py
setup.py
run.py
data
__init__.py
Data.py
ProjectB
run.py
setup.py
B
__init__.py
data
__init__
Data
瞧,它奏效了!
現在,當從 A 調用 B 時,B 調用它自己的 Data class。 我重新設計了 B 中的導入以反映我所做的項目的更改。 然后 Pylance 抱怨(要求改變),所以我只是快速修復它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.