日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python缺少标准库_干货分享:Python如何自动导入缺失的库

發(fā)布時(shí)間:2024/8/23 python 84 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python缺少标准库_干货分享:Python如何自动导入缺失的库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

很多同學(xué)在寫Python項(xiàng)目時(shí)會(huì)遇到導(dǎo)入模塊失敗的情況:ImportError: No module named 'xxx'或者M(jìn)oduleNotFoundError: No module named 'xxx'。導(dǎo)入模塊失敗通常分為兩種:一種是導(dǎo)入自己寫的模塊(即以 .py 為后綴的文件),另一種是導(dǎo)入三方庫(kù)。接下來(lái)就給大家簡(jiǎn)單討論一下。

干貨分享:Python如何自動(dòng)導(dǎo)入缺失的庫(kù)

1、導(dǎo)入自己寫的模塊

在每一個(gè)運(yùn)行的Python程序當(dāng)中,都維護(hù)了一套sys文件,在這里面的path變量里,存儲(chǔ)了在當(dāng)前程序中導(dǎo)入模塊時(shí)候?qū)ふ业穆窂?。path是一個(gè)列表,里邊存儲(chǔ)了多個(gè)路徑,這些路徑是如果我們進(jìn)行import模塊操作的時(shí)候,Python會(huì)從這個(gè)路徑從第一個(gè)開始到最后一個(gè)一個(gè)一個(gè)路徑去找我們的模塊,直到找了或者都沒找到,再拋出異常。

如果我們自己寫的模塊放在奇怪的地方,在程序中import自然是無(wú)法為導(dǎo)入的。這時(shí)我們可以向sys.path這個(gè)列表的第一個(gè)位置里插入一個(gè)路徑,就是我們自己編寫的模塊存放的位置,這樣Python再找的時(shí)候就能找到了。

2、Python導(dǎo)入第三方庫(kù)

解決導(dǎo)入Python庫(kù)失敗的問題,其實(shí)關(guān)鍵是在運(yùn)行環(huán)境中裝上缺失的庫(kù)(注意是否是虛擬環(huán)境),或者使用恰當(dāng)?shù)奶娲桨?。這個(gè)問題又分為三種情況:

1)單個(gè)模塊中缺失的庫(kù)。

在編寫代碼的時(shí)候,如果我們需要使用某個(gè)三方庫(kù)(如 requests),但不確定實(shí)際運(yùn)行的環(huán)境是否裝了它,那么可以這樣:

try:

import requests

except ImportError:

import os

os.system('pip install requests')

import requests

這樣寫的效果是,如果找不到requests庫(kù),就先安裝再導(dǎo)入。

如果真找不到兼容的標(biāo)準(zhǔn)庫(kù),也可以自己寫一個(gè)模塊(如my_json.py),實(shí)現(xiàn)想要的東西,然后在except語(yǔ)句中導(dǎo)入它。

try:

import simplejson as json

except ImportError:

import my_json as json

2)整個(gè)項(xiàng)目中缺失的庫(kù)。

有一個(gè)項(xiàng)目,想要部署到新的機(jī)器上,它涉及很多三方庫(kù),但是機(jī)器上都沒有預(yù)裝,該怎么辦?

對(duì)于一個(gè)合規(guī)的項(xiàng)目,按照約定,通常它會(huì)包含一個(gè)“requirements.txt ”文件,記錄了該項(xiàng)目的所有依賴庫(kù)及其所需的版本號(hào)。這是在項(xiàng)目發(fā)布前,使用命令pip freeze > requirements.txt生成的。使用命令pip install -r requirements.txt (在該文件所在目錄執(zhí)行,或在命令中寫全文件的路徑),就能自動(dòng)把所有的依賴庫(kù)給裝上。

如果項(xiàng)目不合規(guī),或者由于其它倒霉的原因我們沒有這樣的文件,只能把項(xiàng)目跑起來(lái),等它出錯(cuò),遇到一個(gè)導(dǎo)庫(kù)失敗,就手動(dòng)裝一個(gè),然后再跑一遍項(xiàng)目,遇到導(dǎo)庫(kù)失敗就裝一下,如此循環(huán)。

3)自動(dòng)導(dǎo)入任意缺失的庫(kù)

在不修改原有的代碼的情況下,在不需要“requirements.txt”文件的情況下,自動(dòng)導(dǎo)入所需第三方庫(kù)的方法有三個(gè):

·可以用try...except 方式,實(shí)現(xiàn)簡(jiǎn)單的三方庫(kù)導(dǎo)入或者替換;

·已知全部缺失的依賴庫(kù)時(shí)(如 requirements.txt),可以手動(dòng)安裝;

·利用sys.meta_path,可以自動(dòng)導(dǎo)入任意的缺失庫(kù)。

總結(jié)

以上是生活随笔為你收集整理的python缺少标准库_干货分享:Python如何自动导入缺失的库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。