[英]Why do I need to include sys.path.append to import a module with Python 3.6 and my colleges doesn't need?
幾個月來,我一直面臨着一個奇怪的情況。
在我一直在工作的幾個代碼中,在python 3.6.9、Ubuntu 18.04中導入一個模塊,例如:
import src.Modules.ABC.DC as DC
我確實需要包括sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', '..'))
但我所有的大學都在使用相同的代碼和虛擬環境只是不需要那一行。
如果有幫助,在終端中,如果我不包含該行,它將返回:
ModuleNotFoundError: No module named 'src'
因此,我的問題是:
1-為什么我需要在另一台我不需要的計算機中包含該行?
2-您是否建議始終包含該行以獲得更可靠的代碼?
文件夾結構類似於:
Myproject/src/Modules/ABC/DE
Myproject/tests/Modules/ABC/test_DE
我在 Myproject、src、tests 等創建了一個虛擬環境。 它返回始終相同。 當我在沒有 venv 的情況下運行時,它也會返回同樣的問題。 我使用的python命令是
python3 tests/Modules/ABC/test_DE.py
這很煩人,因為我總是需要刪除該行來請求合並。
只需將PYTHONPATH
環境變量設置為(完整路徑) Myproject
。 這告訴 Python 在哪里可以找到要導入的模塊,並且無論您從哪個目錄運行腳本,它都可以工作。 這避免了修改sys.path
的需要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.