溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VScode中不同目錄間python庫函數(shù)如何調(diào)用

發(fā)布時間:2023-03-10 10:23:02 來源:億速云 閱讀:141 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“VScode中不同目錄間python庫函數(shù)如何調(diào)用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“VScode中不同目錄間python庫函數(shù)如何調(diào)用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

問題描述

vscode中跨目錄的模塊調(diào)用遠(yuǎn)不如pycharm中的來的簡單,在pycharm中即使是不同庫文件夾中子函數(shù)也可以進(jìn)行互相調(diào)用。而在VScode中則需要我們手動向其中添加依賴路徑。如下相同的文件結(jié)構(gòu),在pycharm中可以簡單的在model_arc_pesudo中導(dǎo)入model中的模型,而在VScode中則會提示ModuleNotFoundError: No module named 'model',因此我們需要手動導(dǎo)入路徑。

VScode中不同目錄間python庫函數(shù)如何調(diào)用

理論分析

首先我們從依賴路徑角度來看看二者的異同,使用如下代碼輸出依賴路徑:

import sys
print("import path!!!!!!")
print(sys.path)

pycharm中輸出的依賴路徑為:
[xxx, ..., 'E:\\python_program\\infant_cognitive',..., xxx]
其中infant_cognitive項目所在整個文件夾的名字,而vscode中輸出的依賴路徑則不包括這一項,也就無法自動的找到其子文件夾中model,從而無法通過語句from model.PSDCNCluster_2 import PSDCN

解決方案

既然sys.path未包含要導(dǎo)入的文件夾,那么直接導(dǎo)入就行,通過在代碼最前方添加如下代碼實現(xiàn):

import sys
target_path="./"
sys.path.append(target_path)
print(sys.path)

此處有一個隱含的知識點,在vscode中默認(rèn)的根路徑是項目路徑1,而非當(dāng)前py文件的路徑,所以直接使用"./"就可通過相對路徑來導(dǎo)入infant_cognitive下所有的文件夾。如果需要導(dǎo)入其他文件夾下的模塊,只需要對target_path進(jìn)行修改即可,倘若對于相對路徑的寫法以及os, sys模塊的使用不夠熟練,建議是直接使用絕對路徑,不易出錯。

還有一點值得注意的是,由于此處使用的導(dǎo)入方式是module.function(from model.PSDCNCluster_2 import PSDCN),那么實際上我們需要導(dǎo)入的是module的上一級路徑,也就是infant_cognitive,而非導(dǎo)入infant_cognitive\model,這樣的話仍然會報錯。如果是使用module.function形式導(dǎo)入的話,需要注意要導(dǎo)入的是module的上一級文件夾,不再是sys.append("module")?;蛘呤鞘褂?code>target_path="./model"直接搭配from PSDCNCluster_2 import PSDCN,具體可以去查閱python中的import機(jī)制2。

讀到這里,這篇“VScode中不同目錄間python庫函數(shù)如何調(diào)用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI