簡體   English   中英

為什么我需要包含 sys.path.append 來使用 Python 3.6 導入模塊而我的大學不需要?

[英]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.

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