[英]Python change path inside submodule?
我有這個項目結構:
- main.py
- app_a/
- __init__.py
- app.py
- stubs/
- app.py
- tests/
- test_app_a.py
在main.py
,有:
from app_a.app import foo
這很好。 但是,在測試環境中運行時(可以通過env變量檢查),我需要main.py
從存根模塊(位於app_a/stubs/app.py
)而不是實際的app_a/app.py
。
請注意,我無法更改main.py
本身,只能在運行之前更改環境。
我該如何實施? 謝謝。
為什么不在main.py中編寫如下內容
if env:
from app_a.app import foo
else:
from app_a.stubs.app import foo
如果可以將app_a
和tests
文件夾移動到其他位置(腳本執行目錄和Python搜索路徑除外),則可以使用PYTHONPATH
使用相同的代碼並導入不同的模塊。 現在,如果要運行代碼,請將app_a
路徑設置為PYTHONPATH,如果要運行測試,請將app_a\\stubs
設置為PYTHONPATH。 在代碼中,您都可以使用“ from app import foo”。
另一種方法是,當您導入app_a.app時,stubs.app已經是它的一部分了。 用代碼處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.