![](/img/trans.png)
[英]VS Code import resolution error with Pylance (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.