欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一行代碼實(shí)現(xiàn)Python動(dòng)態(tài)加載依賴

 更新時(shí)間:2021年12月26日 14:05:01   作者:louisyoungx  
本文主要介紹了Python動(dòng)態(tài)加載依賴,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前幾天在一個(gè)開源項(xiàng)目里遇到好多用戶反饋,不會(huì)安裝依賴,或者執(zhí)行 pip install -r requirements.txt 沒(méi)有反應(yīng)。

可能造成的原因有很多種,一一排查起來(lái)也很麻煩。

想一勞永逸解決這個(gè)問(wèn)題,一般大家都是到 site-packages 里面把所需要的包導(dǎo)出來(lái),放到項(xiàng)目根目錄。

但這樣終究太過(guò)粗糙,不符合Python優(yōu)雅的個(gè)性。

所以我就想,能不能動(dòng)態(tài)引入包,如果沒(méi)有的話,再調(diào)用 pip 下載。最后也差不多實(shí)現(xiàn)了我的設(shè)想。

我大概查了一下,現(xiàn)在好像沒(méi)有人用過(guò)這個(gè)方案,我自己使用感覺(jué)還是很方便的,分享給大家。

雖然想打成library給大家下載的,后來(lái)想到這又要依賴pip,違背了做動(dòng)態(tài)依賴的本意
所以我推薦是使用 快速開始 - 注入代碼運(yùn)行 中的方式

快速開始

跪求star GitHub - louisyoungx/dypend

通過(guò) pip 安裝運(yùn)行

在 PyPI 下載 dypend依賴包

pip install dypend

在本地生成 requirements.txt 依賴文件

pip freeze > requirements.txt

在項(xiàng)目的入口文件的最上層引入 dypend ,不用更改任何其他代碼

import dypend

這時(shí) dypend會(huì)檢查你的Python環(huán)境中是否都有 requirements.txt 中的包,如果沒(méi)有, dypend會(huì)調(diào)用 pip下載。

注入代碼運(yùn)行

在本地生成 requirements.txt 依賴文件

pip freeze > requirements.txt

在項(xiàng)目的入口文件的最上層添加如下代碼,不用更改任何其他代碼

import os
import re
REQUIREMENTS = os.getcwd() + '/requirements.txt'
def getDepends():
   requirements = open(REQUIREMENTS, 'r')
   libs = requirements.readlines()
   libList = []
   for lib in libs:
       try:
           name = re.search("^.+(?===)", lib).group(0)
           version = re.search("(?<===).+$", lib).group(0)
           libDict = {
               "name": name,
               "version": version
          }
           libList.append(libDict)
       except:
           continue
   return libList
def importLib():
   """Load python dependent libraries dynamically"""
?
   libList = getDepends()
?
   from pip._internal import main as pip_main
   import importlib
?
   def install(package):
       pip_main(['install', package])
?
   createVar = locals()
?
   for lib in libList:
       print(lib)
       try:
           createVar[lib["name"]] = importlib.import_module(lib["name"])
       except Exception as e:
           try:
               install(f'{lib["name"]}=={lib["version"]}')
               createVar[lib["name"]] = importlib.import_module(lib["name"])
           except Exception as e:
               print(e)
importLib()

這時(shí)dypend會(huì)檢查你的Python環(huán)境中是否都有 requirements.txt 中的包,如果沒(méi)有,dypend會(huì)自動(dòng)下載。

到此這篇關(guān)于一行代碼實(shí)現(xiàn)Python動(dòng)態(tài)加載依賴的文章就介紹到這了,更多相關(guān)Python動(dòng)態(tài)加載依賴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python GUI之tkinter窗口視窗教程大集合(推薦)

    Python GUI之tkinter窗口視窗教程大集合(推薦)

    這篇文章主要介紹了Python GUI之tkinter窗口視窗教程大集合,看這一篇教程足了,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python線程threading(Thread類)

    Python線程threading(Thread類)

    這篇文章主要介紹了Python線程threading(Thread類),線程是進(jìn)程的組成部分,一個(gè)進(jìn)程可以擁有多個(gè)線程,更多詳細(xì)內(nèi)容需要的朋友可以參考一下下面文章詳細(xì)內(nèi)容
    2022-07-07
  • Keras SGD 隨機(jī)梯度下降優(yōu)化器參數(shù)設(shè)置方式

    Keras SGD 隨機(jī)梯度下降優(yōu)化器參數(shù)設(shè)置方式

    這篇文章主要介紹了Keras SGD 隨機(jī)梯度下降優(yōu)化器參數(shù)設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python3 寫一個(gè)WAV音頻文件播放器的代碼

    python3 寫一個(gè)WAV音頻文件播放器的代碼

    本文通過(guò)實(shí)例代碼給大家介紹了python3 寫一個(gè)WAV音頻文件播放器,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • django實(shí)現(xiàn)悲觀鎖樂(lè)觀鎖的項(xiàng)目實(shí)踐

    django實(shí)現(xiàn)悲觀鎖樂(lè)觀鎖的項(xiàng)目實(shí)踐

    在Django中,我們可以通過(guò)實(shí)現(xiàn)悲觀鎖和樂(lè)觀鎖來(lái)保證數(shù)據(jù)的安全性,本文就來(lái)介紹一下django實(shí)現(xiàn)悲觀鎖樂(lè)觀鎖的項(xiàng)目實(shí)踐,感興趣的可以了解一下
    2023-08-08
  • python實(shí)現(xiàn)圖片九宮格分割

    python實(shí)現(xiàn)圖片九宮格分割

    一張圖片分成的九宮圖,大家知道是怎么做到嗎?這篇文章就為大家詳細(xì)介紹了python實(shí)現(xiàn)圖片九宮格分割功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式

    python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式

    Python內(nèi)置了CSV模塊,可直接通過(guò)該模塊實(shí)現(xiàn)csv文件的讀寫操作,在web應(yīng)用中導(dǎo)出數(shù)據(jù)是比較常見操作,下面這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • python輕松辦公將100個(gè)Excel中符合條件的數(shù)據(jù)匯總到1個(gè)Excel里

    python輕松辦公將100個(gè)Excel中符合條件的數(shù)據(jù)匯總到1個(gè)Excel里

    這篇文章主要為大家介紹了python輕松辦公將100個(gè)Excel中符合條件的數(shù)據(jù)匯總到1個(gè)Excel里示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • python簡(jiǎn)單利用字典破解zip文件口令

    python簡(jiǎn)單利用字典破解zip文件口令

    這篇文章主要給大家介紹了關(guān)于python簡(jiǎn)單利用字典破解zip文件口令的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python入門教程(七)Python數(shù)字類型

    Python入門教程(七)Python數(shù)字類型

    這篇文章主要介紹了Python入門教程(七)Python數(shù)字類型,Python是一門非常強(qiáng)大好用的語(yǔ)言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04

最新評(píng)論