成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 服務(wù)器運(yùn)行代碼報(bào)錯(cuò)ModuleNotFoundError的解決辦法

瀏覽:150日期:2022-07-11 08:53:16

一、問(wèn)題描述

一段 Python 代碼在本地的 IDE 上運(yùn)行正常,部署到服務(wù)器運(yùn)行后,出現(xiàn)了 ModuleNotFoundError: No module named ‘xxx’ 錯(cuò)誤。

二、問(wèn)題原因

在代碼中引入了其他文件的包(自己寫的包,非 pip 安裝的),問(wèn)題出在 import 那行語(yǔ)句。

錯(cuò)誤的原因是因?yàn)槁窂降脑颍?wù)器端的路徑和我們本地的路徑不一樣顯示。

三、解決示例

要解決這個(gè)問(wèn)題,可以在自己代碼的頂端加入以下代碼:

import sysimport ossys.path.append(os.path.dirname(sys.path[0]))

或者

import sysimport osBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.insert(0, BASE_DIR)

以上代碼可以保證在任何時(shí)候都切換到當(dāng)前執(zhí)行腳本所在目錄中,具體根據(jù)自己腳本所在的目錄結(jié)構(gòu)進(jìn)行調(diào)整。

四、sys.path.append() 和 sys.path.insert()

Python 程序中使用 import xxx 時(shí),Python 解析器會(huì)在當(dāng)前目錄、已安裝和第三方模塊中搜索 xxx,如果都搜索不到就會(huì)報(bào)錯(cuò)。

sys.path 模塊可以動(dòng)態(tài)的修改系統(tǒng)路徑,這種方法導(dǎo)入的路徑會(huì)在 Python 程序退出后失效。

sys.path 本身是個(gè)列表,所以在里面添加目錄是很容易的,添加完后,新目錄即時(shí)起效,以后的每次 import 操作都可能會(huì)檢查這個(gè)目錄。

1. sys.path.append()

在 sys.path 列表的末尾臨時(shí)添加搜索路徑,方便更簡(jiǎn)潔的 import 其他包和模塊。這種方法導(dǎo)入的路徑會(huì)在 Python 程序退出后失效。

示例:

import syssys.path.append(’..’) # 表示導(dǎo)入當(dāng)前文件的上層目錄到搜索路徑中sys.path.append(’/home/model’) # 絕對(duì)路徑from folderA.folderB.fileA import functionA

2. sys.path.insert()

可以定義搜索優(yōu)先順序,序號(hào)從 0 開始,表示最大優(yōu)先級(jí),sys.path.insert() 加入的也是臨時(shí)搜索路徑,程序退出后失效。

示例:

import syssys.path.insert(1, './model')

以上就是python 服務(wù)器運(yùn)行代碼報(bào)錯(cuò)ModuleNotFoundError的解決辦法的詳細(xì)內(nèi)容,更多關(guān)于python 代碼報(bào)錯(cuò)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章: