最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

快速開始

跪求star GitHub - louisyoungx/dypend

通過 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 中的包,如果沒有, 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 中的包,如果沒有,dypend會(huì)自動(dòng)下載。

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

相關(guān)文章

  • Python reduce函數(shù)作用及實(shí)例解析

    Python reduce函數(shù)作用及實(shí)例解析

    這篇文章主要介紹了Python reduce函數(shù)作用及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 詳解Python中的元組與邏輯運(yùn)算符

    詳解Python中的元組與邏輯運(yùn)算符

    這篇文章主要介紹了Python中的元組與邏輯運(yùn)算符的用法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • Python魔術(shù)方法深入分析講解

    Python魔術(shù)方法深入分析講解

    所謂魔法函數(shù)(Magic Methods),是Python的?種?級(jí)語法,允許你在類中?定義函數(shù)(函數(shù)名格式?般為__xx__),并綁定到類的特殊?法中。?如在類A中?定義__str__()函數(shù),則在調(diào)?str(A())時(shí),會(huì)?動(dòng)調(diào)?__str__()函數(shù),并返回相應(yīng)的結(jié)果
    2023-02-02
  • Python字典中的鍵映射多個(gè)值的方法(列表或者集合)

    Python字典中的鍵映射多個(gè)值的方法(列表或者集合)

    今天小編就為大家分享一篇Python字典中的鍵映射多個(gè)值的方法(列表或者集合),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python實(shí)現(xiàn)Socket.IO的在線游戲場景方式

    Python實(shí)現(xiàn)Socket.IO的在線游戲場景方式

    本文介紹了Socket.IO的基本概念、應(yīng)用場景,并通過一個(gè)簡單的多人在線實(shí)時(shí)對戰(zhàn)游戲案例,展示了如何使用Python和Socket.IO庫實(shí)現(xiàn)實(shí)時(shí)通信,Socket.IO的核心是事件驅(qū)動(dòng)模型,支持WebSocket協(xié)議,并在不支持的情況下回退到其他傳輸方式
    2025-01-01
  • Python實(shí)現(xiàn)Telnet自動(dòng)連接檢測密碼的示例

    Python實(shí)現(xiàn)Telnet自動(dòng)連接檢測密碼的示例

    這篇文章主要介紹了Python實(shí)現(xiàn)Telnet自動(dòng)連接檢測密碼的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • Python中的數(shù)據(jù)分組統(tǒng)計(jì)、分組運(yùn)算及透視方式

    Python中的數(shù)據(jù)分組統(tǒng)計(jì)、分組運(yùn)算及透視方式

    這篇文章主要介紹了Python中的數(shù)據(jù)分組統(tǒng)計(jì)、分組運(yùn)算及透視方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • numpy稀疏矩陣的實(shí)現(xiàn)

    numpy稀疏矩陣的實(shí)現(xiàn)

    本文主要介紹了numpy稀疏矩陣的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python supervisor強(qiáng)大的進(jìn)程管理工具的使用

    Python supervisor強(qiáng)大的進(jìn)程管理工具的使用

    這篇文章主要介紹了Python supervisor強(qiáng)大的進(jìn)程管理工具的使用,本文主要跟大家分享在類unix操作系統(tǒng)下supervisor的使用以及一些關(guān)于進(jìn)程的知識(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Django獲取前端數(shù)據(jù)的實(shí)現(xiàn)方式

    Django獲取前端數(shù)據(jù)的實(shí)現(xiàn)方式

    這篇文章主要介紹了Django獲取前端數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評(píng)論

鹤峰县| 增城市| 防城港市| 乌兰察布市| 思南县| 柳林县| 莲花县| 丁青县| 大连市| 民和| 始兴县| 天津市| 静安区| 阿克陶县| 当涂县| 石狮市| 永新县| 诏安县| 中卫市| 广汉市| 肃南| 石首市| 昌黎县| 花莲县| 通渭县| 广宁县| 岱山县| 酉阳| 尚志市| 江油市| 遵义县| 连云港市| 扶风县| 遂川县| 通榆县| 枣阳市| 亳州市| 桂平市| 蓬溪县| 金堂县| 平安县|