您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“VScode中不同目錄間python庫函數如何調用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“VScode中不同目錄間python庫函數如何調用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
vscode中跨目錄的模塊調用遠不如pycharm中的來的簡單,在pycharm中即使是不同庫文件夾中子函數也可以進行互相調用。而在VScode中則需要我們手動向其中添加依賴路徑。如下相同的文件結構,在pycharm中可以簡單的在model_arc_pesudo
中導入model
中的模型,而在VScode中則會提示ModuleNotFoundError: No module named 'model'
,因此我們需要手動導入路徑。
首先我們從依賴路徑角度來看看二者的異同,使用如下代碼輸出依賴路徑:
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
未包含要導入的文件夾,那么直接導入就行,通過在代碼最前方添加如下代碼實現:
import sys target_path="./" sys.path.append(target_path) print(sys.path)
此處有一個隱含的知識點,在vscode中默認的根路徑是項目路徑1,而非當前py
文件的路徑,所以直接使用"./"
就可通過相對路徑來導入infant_cognitive
下所有的文件夾。如果需要導入其他文件夾下的模塊,只需要對target_path
進行修改即可,倘若對于相對路徑的寫法以及os, sys
模塊的使用不夠熟練,建議是直接使用絕對路徑,不易出錯。
還有一點值得注意的是,由于此處使用的導入方式是module.function(from model.PSDCNCluster_2 import PSDCN
),那么實際上我們需要導入的是module的上一級路徑,也就是infant_cognitive
,而非導入infant_cognitive\model
,這樣的話仍然會報錯。如果是使用module.function形式導入的話,需要注意要導入的是module的上一級文件夾,不再是sys.append("module")
。或者是使用target_path="./model"
直接搭配from PSDCNCluster_2 import PSDCN
,具體可以去查閱python中的import機制2。
讀到這里,這篇“VScode中不同目錄間python庫函數如何調用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。