簡體   English   中英

VS Code 識別導入,但仍顯示 ModuleNotFoundError

[英]VS Code recognized the import but still shows ModuleNotFoundError

我目前正在開發一些帶有多個子文件夾的包。 但是,當我嘗試將一個函數從子文件夾導入另一個函數時,VS 代碼顯示為綠色,但是當我運行它時,終端顯示 ModuleNotFoundError。 文件夾結構如下圖所示。

Folder
|-Subfolder_1
|-- __init__.py
|-- fitting.py
|- Subfolder_2
|-- __init__.py
|-- process.py
|- main.py

當我將 subfolder_1 導入到 main.py 時,它工作正常,但是當我嘗試將fitting.py 導入到 process.py 時,問題就出現了。 我試圖弄亂 vscode 中的設置,但沒有任何效果。 我也嘗試將它們放在同一個子文件夾中,但是當我這樣做時,process.py 可以正常運行,但 main.py 會為找不到模塊拋出錯誤,因為我在 main.py 中使用了 process.py。

如果有人對如何修復它有一些想法,將不勝感激。

編輯 1:嘗試了 sys.path.append 進行導入,並發生了同樣的錯誤。

Traceback (most recent call last):
File "path/to/file/subfolder_2/process.py", line 6, in <module>
    import  fitting 
ModuleNotFoundError: No module named 'fitting'

編輯2:當我將fitting.py 移動到與process.py 和導入配件相同的子文件夾中時,代碼運行並正常運行(回溯消息后的文件夾結構)。 但是,當我通過導入調用 main.py 中的 process.py 中的函數時,發生了這個錯誤:

Traceback (most recent call last):
  File "/path/to/main.py", line 4, in <module>
    from subfolder_1 import process
  File "/path/to/subfolder_1/process.py", line 4, in <module>
    import Fitting
ModuleNotFoundError: No module named 'Fitting'
Folder
|- Subfolder_1
|-- __init__.py
|-- process.py
|-- fitting.py
|- main.py

編輯 3:我目前正在通過在同一個子文件夾中包含 fit.py 和 process.py 但不在 main.py 中調用 process.py 並為用於 main.py 的函數提供另一個文件來解決此問題; 但是,我想知道為什么會發生此錯誤以及什么可以適應它,因為如果我必須恢復到舊結構,它將非常適合將來參考。

如果您使用的是virtual environment ,那么您需要激活它。

適用於Mac OS / Linux

source <path to env>/bin/activate

適用於Windows

<path to env>\Scripts\activate

您可以嘗試添加路徑。 不過需要注意的是,vscode 會搜索以工作空間為根目錄的文件。

在這里,我假設您有一個包含目錄結構的工作區。

你可以試試:

import sys
sys.path.append(".\Folder\Subfolder_1")
import fitting

示例:這里my_python是我的工作區。 它涉及一個名為mainfloder的項目,例如您的**Floder**

在此處輸入圖像描述

import sys
sys.path.append(".\mainfloder\projectfloder\pages")
from webpages import SignUpPage

print(SignUpPage())

我能得到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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