[英]ModuleNotFoundError: No module named 'src'. Import modules from another directory without sys.path and execute them from existing directory
盡管這是一個常見的問題,但我相信我有一個奇怪的情況
MAIN
| --src
| -- data
| -- __init__.py
| -- operation.py
| tests
| __init__.py
| test_file.py
| examples
| __init__.py
| example.py
test_file.py 和 example.py 的內容如下:
from src.data.operation import *
我通過在測試文件夾中導航從 powershell 執行以下命令:
python -m pytest -v test_file.py
測試文件運行良好,沒有出現任何錯誤。
現在我通過在示例文件夾中導航從 powershell 執行以下命令:
python -m example.py
這給我帶來了模塊錯誤。 盡管測試和示例與 src 處於同一層次結構中,但僅當我通過在示例文件夾中導航來執行 example.py 文件時,我才會收到模塊錯誤。 如果有人能解釋這背后的邏輯,以及在不涉及 sys.path 的 Windows 系統中執行 example.py 的最佳方法是什么,那就太好了?
不附加 sys.path 就無法導入。 默認情況下,Python 在 $PYTHONPATH 中查找其模塊和包。 當您在模塊中導入某些內容時,它首先搜索具有該名稱的內置模塊,然后在變量 sys.path 給出的目錄列表中搜索文件或文件夾。
要成功從 src 導入,請在 example.py 的頂部添加這些行
import sys
sys.path.insert(0, "PATH_TO_THE_MAIN_FOLDER")
從示例文件夾中運行模塊:
python -m example
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.