1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        新一代Python包管理工具來了

        共 1615字,需瀏覽 4分鐘

         ·

        2022-02-14 02:07

        1 簡介

        說起Python的包管理工具,大家第一時間想到的肯定是pip、conda等經(jīng)典工具。但最近我發(fā)現(xiàn)了一款新穎的Python包管理工具——pdm,它受到PEP582https://www.python.org/dev/peps/pep-0582/)以及node管理庫文件方式的啟發(fā),幫助我們以「本地項目庫」的形式創(chuàng)建及管理不同的Python環(huán)境。

        2 使用pdm管理項目庫環(huán)境

        2.1 pdm的安裝

        pdm的安裝方式多種多樣,這里我們使用官方推薦的方式進行安裝:

        python?-m?pip?install?--user?pipx
        python?-m?pipx?ensurepath

        接著關(guān)閉你的終端重開一個新的,繼續(xù)輸入:

        pipx?install?pdm

        當出現(xiàn)以下內(nèi)容時,則代表我們的pdm已經(jīng)安裝完成了~

        2.2 pdm的基礎(chǔ)使用

        使用pdm以當前目錄作為項目倉庫創(chuàng)建項目時,我們需要根據(jù)項目實際需要,先切換到對應Python版本的環(huán)境之下,再執(zhí)行pdm init來初始化項目,以3.7為例:

        cd?C:\Users\pengz\Desktop\當期博客工作臺\pdm-demo
        conda?activate?dash-apps
        pdm?init

        初始化項目時,根據(jù)自己的實際情況填寫每個問題即可:

        上述過程之后,你會在當前目錄下發(fā)現(xiàn)創(chuàng)建好的pyproject.toml文件,它記錄了當前pdm項目的各項基本參數(shù):

        接下來我們可以根據(jù)自己項目的實際需要使用pdm add命令來安裝指定的單個或多個第三方Python庫,以flask為例(其中第一行命令用于設(shè)置國內(nèi)pypi鏡像源):

        pdm?config?pypi.url?https://pypi.douban.com/simple/
        pdm?add?-v?flask?flask-login

        完成安裝后,我們可以在當前目錄下看到__pypackages_目錄,我們前面所安裝的庫就隔離安裝在其下面,類似nodenode_modules目錄:

        也與PEP582所倡導的項目結(jié)構(gòu)相符合:

        foo
        ????__pypackages__
        ????????3.7
        ????????????lib
        ????????????????bottle
        ????myscript.py

        這樣就實現(xiàn)了項目級別的環(huán)境隔離效果,且無需創(chuàng)建額外的虛擬環(huán)境,要在IDE中使用pdm項目下的本地隔離庫執(zhí)行程序很簡單,以pycharm為例,將pdm項目打開為pycharm工程之后,找到如圖所示位置的lib文件夾,將其標記為Sources Root即可,同時記得將解釋器選為pdm init初始化時所在環(huán)境相對應的:

        與終端中原始環(huán)境的執(zhí)行結(jié)果對比,可以發(fā)現(xiàn)成功實現(xiàn)了環(huán)境隔離,這是因為pdm項目的__pypackages__中的包會在環(huán)境本身的site-packages之前被載入,從而更好地隔離包的環(huán)境:

        如果你想要在其他路徑或其他機器上還原某個pdm項目,則僅需要將pyproject.tomlpdm.lock文件拷貝過去,再在對應目錄下執(zhí)行pdm sync -v命令即可,非常的方便,類似npm install配合package.json的功能:

        關(guān)于pdm的更多特性你可以前往其官網(wǎng)https://pdm.fming.dev/了解更多~


        往期推薦


        1、我在大廠,績效被打了“C”

        2、2022 年是 Linux 桌面年嗎?

        3發(fā)布了一個軟件,被抓了!

        4、華為云春節(jié)前夕遭連續(xù)偷襲!密謀3個月,專挑凌晨斷網(wǎng)

        5、12小時無休!25歲員工春節(jié)加班深夜猝死,B站回應:不存在加班情況



        點擊關(guān)注公眾號,閱讀更多精彩內(nèi)容
        瀏覽 34
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            特一级毛片| 成人无码激情A片免费看 | 国产精品一二三四区 | free性hd性娇小丰满的出处 | 日本特级片 | 免费视频爱爱太爽 | 久久伊人五月天 | 国产成人传媒 | 好紧h宝贝nph | 91麻豆福利视频 |