一文詳解如何從根本上優(yōu)雅地解決VSCode中的Python模塊導(dǎo)入問題
整體概述:
在我嘗試運行test_deal_file.py時,我遇到了一個ModuleNotFoundError錯誤,Python告訴我找不到名為controllers的模塊。這意味著我無法從deal_file.py中導(dǎo)入read_excel函數(shù)。為了解決這個問題,我嘗試了幾種方法。
首先,我使用了相對導(dǎo)入,這在不改變當前工作目錄的情況下是有效的,但一旦我切換了目錄,這個方法就不行了。
接著,我嘗試動態(tài)地將當前工作目錄添加到sys.path中。
這樣做雖然有效,但我覺得這種方法不夠優(yōu)雅。所以,我決定采取一種更徹底的解決方案。
我通過修改 VSCode 的settings.json文件,設(shè)置了PYTHONPATH環(huán)境變量,確保了我的項目路徑my_project被加入到模塊搜索路徑中。
我在settings.json中為不同的操作系統(tǒng)配置了terminal.integrated.env` 部分,然后重啟了虛擬環(huán)境和集成終端。重新運行我的文件后,問題終于解決了。通過這篇文章,我想和大家分享如何以一種更優(yōu)雅的方式解決 Python 項目中的模塊導(dǎo)入問題。
同時,我也介紹了如何在 VSCode 中管理項目環(huán)境變量和運行路徑,這對于解決開發(fā)過程中的環(huán)境配置問題非常有幫助。希望我的經(jīng)驗?zāi)艹蔀槠渌_發(fā)者在面對類似問題時的寶貴資源。
我的問題解決過程
(想直接看解決教程的直接跳到下一個標題內(nèi)容)我的項目結(jié)構(gòu)是這樣的
my_project/
├── controllers/
│ ├── __init__.py
│ └── deal_file.py
└── tests/
├── __init__.py
└── test_deal_file.py
結(jié)果運行test_deal_file.py會出現(xiàn)報錯信息:
# 報錯信息
from controllers.deal_file import read_excel
ModuleNotFoundError: No module named 'controllers'
我嘗試了引用改成from ..controllers.deal_file import read_excel,terminal不切換目錄可以運行成功,但切換目錄后還是運行失敗
我又嘗試了
import sys import os sys.path.append(os.getcwd())
但是說實話,不是很美觀
我決定從根本上解決這個問題。
首先我打印我所有運行路徑
import sys
paths = sys.path
for path in paths:
print(path)
輸出結(jié)果果然,不包含我my_project的路徑。如何把my_project路徑添加到系統(tǒng)運行路徑呢?方法如下:
vscode 解決模塊導(dǎo)入問題的流程
1. 打開設(shè)置界面在 VSCode 中,您可以通過點擊左下角的齒輪圖標然后選擇 “Settings” 來打開設(shè)置界面。
另一種方式是使用快捷鍵 Ctrl + ,(在 Mac 上是 Cmd + ,)直接打開設(shè)置界面。

2. 選擇合適的工作區(qū)打開setting界面后,上面有三個選項,對應(yīng)著三種級別的設(shè)置文件工作區(qū)(workspace)、遠程(remote)和用戶(user)。每個級別的設(shè)置都有其特定的用途和作用范圍。
用戶設(shè)置(User settings): 位于全局級別,適用于您計算機上的所有 VSCode 實例。 路徑通常在
~/.config/Code/User/settings.json(Unix/Linux)或
%APPDATA%\Code\User\settings.json(Windows)。 用于存儲您希望在所有項目和環(huán)境中使用的全局配置。
工作區(qū)設(shè)置(Workspace settings): 特定于當前打開的工作區(qū)或項目。 路徑通常在工作區(qū)根目錄下的 .vscode/settings.json 文件中。 用于存儲針對特定項目或工作區(qū)的配置,這些配置不會影響其他項目。
遠程設(shè)置(Remote settings): 特定于遠程開發(fā)環(huán)境,例如通過 SSH 或容器連接的遠程服務(wù)器。 路徑通常在 .vscode-remote/settings.json 文件中,這個文件位于您的本地工作區(qū)目錄下。 用于存儲針對遠程開發(fā)環(huán)境的配置,如
SSH 連接設(shè)置、容器設(shè)置等。
現(xiàn)在你需要選擇適合你的設(shè)置文件:
如果環(huán)境變量僅適用于特定項目,您應(yīng)該在工作區(qū)設(shè)置文件中添加它們。
如果環(huán)境變量需要在所有項目中使用,您應(yīng)該在用戶設(shè)置文件中添加它們。
如果環(huán)境變量是針對遠程開發(fā)環(huán)境的,您應(yīng)該在遠程設(shè)置文件中添加它們。

3. 打開對應(yīng)工作區(qū)的setting.json頁面往下滑找到Edit in setting.json,點擊打開

4. 編輯setting.json接下來你要修改這個文件

下面內(nèi)容復(fù)制到你的setting.json文件中,并保存
{
"terminal.integrated.env.windows": {
"PYTHONPATH": "/path/to/your/project"
},
"terminal.integrated.env.linux": {
"PYTHONPATH": "/path/to/your/project"
},
"terminal.integrated.env.osx": {
"PYTHONPATH": "/path/to/your/project"
}
}

重啟虛擬環(huán)境
Unix/Linux 系統(tǒng):source /path/to/venv/bin/activateWindows 系統(tǒng):\path\to\venv\Scripts\activate
關(guān)閉terminal集成終端
在 VSCode 中,關(guān)閉當前打開的集成終端。
打開新的集成終端:
通過點擊 VSCode 頂部的 “Terminal” 菜單或者使用快捷鍵 Ctrl+ (在 Mac 上是Cmd+ ) 來打開一個新的集成終端窗口。
重新運行你的文件
可以看到你的項目路徑已經(jīng)添加到環(huán)境,項目也可以正常運行了??
總結(jié)
到此這篇關(guān)于從根本上優(yōu)雅地解決VSCode中的Python模塊導(dǎo)入問題的文章就介紹到這了,更多相關(guān)VSCode中Python模塊導(dǎo)入問題解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python之tkinter文字區(qū)域Text使用及說明
這篇文章主要介紹了Python之tkinter文字區(qū)域Text使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
Python中命令行參數(shù)argparse模塊的使用
argparse是python自帶的命令行參數(shù)解析包,可以用來方便的服務(wù)命令行參數(shù)。本文將通過示例和大家詳細講講argparse的使用,需要的可以參考一下2023-02-02
基于Python和Tkinter實現(xiàn)文本文件轉(zhuǎn)換為MP3語音文件
本文介紹了基于Python和Tkinter的圖形界面應(yīng)用程序,該程序用于將文本文件轉(zhuǎn)換為MP3語音文件,功能包括文本轉(zhuǎn)語音轉(zhuǎn)換、文件處理、語音參數(shù)調(diào)節(jié)等,用戶界面設(shè)計合理,具有多線程處理、自動保存和錯誤處理等技術(shù)特點,使用流程簡單易懂,附帶幫助文檔2026-02-02
Python基礎(chǔ)之python循環(huán)控制語句break/continue詳解
Python中提供了兩個關(guān)鍵字用來控制循環(huán)語句,分別是break和continue,接下來通過兩個案例來區(qū)分這兩個控制語句的不同,感興趣的朋友一起看看吧2021-09-09
Linux下把Python3設(shè)為默認Python版本的三種方法
這篇文章主要給大家介紹了關(guān)于Linux下把Python3設(shè)為默認Python版本的三種方法,在大部分開發(fā)過程中,我們需要使用到python3進行測試,于是下載安裝python3,近乎是一種剛需,至于設(shè)置默認python指向python3可以參考本文2023-09-09
Python Selenium 設(shè)置元素等待的三種方式
這篇文章主要介紹了Python Selenium 設(shè)置元素等待的三種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
pycharm沒有找到manage?repositories按鈕的解決辦法
這篇文章主要給大家介紹了關(guān)于pycharm沒有找到manage?repositories按鈕的解決辦法,pycharm是用來寫python的可視化代碼軟件,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-07-07
Python實現(xiàn)OpenCV中文路徑圖片讀寫的詳細指南
在Python中使用OpenCV處理圖片時,涉及讀取和保存圖片的操作,可能會遇到中文路徑的兼容性問題,該指南的目的是展示如何正確處理帶有中文路徑的圖片,并使用OpenCV將圖片保存到指定的中文路徑,需要的朋友可以參考下2025-03-03

