簡體   English   中英

Python更改子模塊內的路徑?

[英]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_atests文件夾移動到其他位置(腳本執行目錄和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.

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